Procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin //只允许输入数字 if (Key<'0' ) or (Key>'9') then abort; end;
Procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin //只允许输入字符 if (UpCase (Key)<'A' ) or (Key>'Z') then abort; end;
在此基础上把TAB、BackSpace等加进来,就OK了 Procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin //只允许输入字符 if (UpCase(Key)<'A' ) or (UpCase(Key)>'Z') then abort; end;
借PoolD(池龙)大作提醒: setwindowlong(edit1.handle, GWL_STYLE ,getwindowlong(edit1.handle,GWL_STYLE ) or ES_NUMBER);
请教!!!!!!
你好。
我的意思是在一个应用中要求在EDIT中只输入数字,在另外一个应用中要求只输入字母等等。或许我没说清。
请帮我!THANKS 。
如果是指定位数的数字或字母,可以用TMaskEdit。
如果一定要TEdit的话,
最常用的方式就是在TEdit的OnkeyPress或者OnKeyDown的时候判断是否数字或字母(可以根据ASCII码),如果不符合要求就将Key置为#0。但是要注意不要屏蔽一些控制键,如TAB、BackSpace等。
还有一种方法就是给TEdit的风格中增加 ES_NUMBER(只能输入数字),这需要调用API实现,可以参照API的帮助。
GetWindowLong
SetWindowLong
ord()
ASCII码到字符
chr()
begin //只允许输入数字
if (Key<'0' ) or (Key>'9') then
abort;
end;
begin //只允许输入字符
if (UpCase (Key)<'A' ) or (Key>'Z') then
abort;
end;
Procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin //只允许输入字符
if (UpCase(Key)<'A' ) or (UpCase(Key)>'Z') then
abort;
end;
setwindowlong(edit1.handle, GWL_STYLE ,getwindowlong(edit1.handle,GWL_STYLE ) or ES_NUMBER);