如何在delphi裡面控制Edit只能輸入數字
━━━━━━━━━━━━━━━━━━━━━━━━━━
if not (key in ['0'..'9',#8]) then key := #0;
只能輸入漢字,而不能輸入數字或其他字元
━━━━━━━━━━━━━━━━━━━━━━━━━━
在Edit的OnKeyPress事件中
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Ord(Key)<127) or (Ord(Edit1.Text[1])>127) then
Key:=#0;
end;
要使一文字框中只可輸入數字,而且當輸入的數字錯誤時還可以通過Backspace鍵來修改.
━━━━━━━━━━━━━━━━━━━━━━━━━━
由於BackSpace的ASCII值是8,所以像以下這樣即可
if (key<>#46) and ((key < #48) or (key > #57)) and (key <> #8) then
//如果輸入不是數字或小數點(#46代表小數點)
begin
key:=#0; //取消輸入的內容(#0代表空值)
showmessage('輸入錯誤!請輸入數字!'); //發出提示資訊
end;
方法二:
if not (key in ['0'..'9',#13,#8 ,#46]) then
key := #0;
這樣就可以了
只能輸入數字,而不能輸入其他字元
━━━━━━━━━━━━━━━━━━━━━━━━━━
edit 屬性Maxlength 設定2;
在edit的onkeypress裡
procedure Tmainform.editkeypress(sender:tobject;var key: char );
var
Uflag: integer;
begin
Uflag:=Tedit(sender).Tag;
if (not (key in ['1'..'9'])) and (not (key=#8)) then key:=#0;
end;
方法二:
edit的maxlength設定為2;
在edit的onkeypress事件內
procedure Ttbdlform.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key <> #9 then// #9 是空格,你可以尋找下數字1\2\3是什麼值
showmessage('請輸入數字')
end;
只能輸入數字和小數點
━━━━━━━━━━━━━━━━━━━━━━━━━━
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9','.',#8,#32]) then
key:= #0;
end;
end.
但如果你想只輸入數字而且有格式限制 那麼你最好還是用第三方控制項`
方法二:
可以在keypress裡面加上如下代碼,可以輸入數字,並且可以使用退格刪除數字,可以使用斷行符號
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
'0'..'9', #8, #13, #27, '.' : ;
else
begin
MessageBox(Handle, '請輸入數字', PChar('輸入錯誤'), MB_OK + MB_ICONINFORMATION);
Key := #0;
end;
end;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', #8, #13]) then
begin
Key := #0;
ShowMessage('只能輸入數字');
end;
end;