在Delphi中使用編輯框時,有時需要限制輸入它的字符類型,如只接收數字或只接收字母。我們可以在TEdit組件的on..KeyPress事件中對輸入進行處理,以限制對編輯框的輸入。
限制為只接收數字的例程如下:
procedure
TForm1.Edit1KeyPress(Sender: TObject; var..Key: Char);
begin
if not(key in['0'..'9',#8])then
begin
key:=#0;
MessageBeep(1); //Beep; 調用系統聲音也行!
end;
end;
程序通過TEdit組件的on..KeyPress事件,判斷按鍵是否為0至9這10個數字鍵,或者是BackSpace鍵,如果不是則將該輸入設置為空
(key:=#0),將其屏蔽掉;如果是則接收字符輸入。這里有一點需要說明的是,#8對應BackSpace鍵,我們不應將它也屏蔽掉,否則不能使用退
格(BackSpace)鍵刪除錯誤的數字輸入。
同樣,如果要限制編輯框只接收字母(不管大小寫)輸入,程序如下:
procedure
TForm1.Edit1KeyPress(Sender: TObject; var..Key: Char);
begin
if not(key in['a'..'Z',#8])then
begin
key:=#0;
MessageBeep(1); //Beep; 調用系統聲音也行!
end;
end;
轉自 : http://hi.baidu.com/6799974/item/aa5cb78aead249864514cf6c
不能直接用['a'..'Z' , #8], 要這樣才不會報錯['a'..'z' ,'A'..'Z', #8]
