2017-06-16 1 views
0

文字を数字に制限する方法はありますか?スペースを入れずに10にして、もう一度編集する方法はありますか? それは電話番号のために、そして名前にスペースを必要としません、それをする方法を考えていません。実装するためのいくつかの方法を試しても、動作しないコードを見つけました ここに私が見つけたものは何ですか?スペースがないためどのように妥当性を検証するinno setupの数字とテキストのみを編集しますか?

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); 
begin 
    if Key in ['0'..'9'] then 
    Key := #0; 
end; 

と、この:いけないためここでは

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); 
begin 
    if (Key in ['a'..'z']) or (Key in ['A'..'Z']) then 
    Key := #0; 
end; 

は、数字を許可

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); 
begin 
    if key = Char(VK_SPACE) then 
    Key := #0; 
end; 

は、INNOで同様のものを実装することができますか?

答えて

0

あなたは

Edit1.MaxLength:=10; 
+2

文字を制限するために、EDIT1のMaxLengthプロパティを編集することができます 'TEdit'には** **キャプションプロパティを持っていません:) **テキスト**プロパティを使用します! 'copy(...)'は必要ありません。代わりに 'key:=#0'を使用してください。 –

+1

私は** Text **プロパティと** Caption **プロパティは同等であると思います。 ** KeyPress **イベントで 'key:=#0'を知りませんでした。 – Vuio

+2

**また注意してください:**あなたは' Edit1KeyPress() 'イベントの中にいます。これは、あなたがコピー(...)をした瞬間に 'Edit1.Text'が変更されていないことを意味します!!!最後のcharを削除して有効なcharを削除します。 'Key:= 0;を設定しないで、最後に終了した文字の後ろに数字を追加しました:START:** abcd ** removed' d'。 5 Edit1.Text = ** abc5 **の結果。あなたの答えを改善するか、削除してください。 –

関連する問題