procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['1','2','3','4','5','6','7','8','9','0',,'.',#13,#8])
begin
key := #0;
end;
end;
我一直用
dickeybird888(于伟刚)
1方法.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (key in ['0'..'9']=false) and (word(key)<>vk_back) then
begin
key:=#0;
end;
end;
不过小数就不行了。呵呵。得自己改一下
判断字符是否是数字
function IsDigit(ch: char): boolean;
begin
Result := ch in ['0'..'9'];
end;
然后在keypress中调用
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if IsDigit(key) then
begin
showmessage('this is num');
key:=#0;
end;
end;
1方法.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (key in ['0'..'9']=false) and (word(key)<>vk_back) then
begin
key:=#0;
end;
end;
2方法.
使用setwindowlong 和getwindowlong 函数 如edit1 为例
SetWindowLong(Edit1.Handle, GWL_STYLE,
GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);