EDIT问题 找销售软件的技巧
2楼: 限制为只接收数字的例程如下:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in[''0''..''9'',#8])then
begin
key:=#0;
MessageBeep(1);
end;
end;
程序通过TEdit组件的OnKeyPress事件,判断按键是否为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);
end;
end; 如销售软件的技巧
3楼: 谢谢两位对我问题的回答,谢谢!!!
4楼: key not In [''0''..''9'']
可以判断一般的无符号整型
其他还有很多种类型
5楼: 小数点,delete键,方向键
6楼: 还要计算-
仓库管理软件版7楼: 一行搞定
设置只能输入数字,Del和退格键均有效:
SetWindowLong(Edit1.Handle, GWL_STYLE,
GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);
恢复:
SetWindowLong(Edit1.Handle, GWL_STYLE,
GetWindowLong(Edit1.Handle, GWL_STYLE) and not ES_NUMBER);