如何让TStringGrid 只接受数字不接受字符串?(50分)

  • 主题发起人 主题发起人 tansin
  • 开始时间 开始时间
T

tansin

Unregistered / Unconfirmed
GUEST, unregistred user!
如何让TStringGrid 只接受数字不接受字符串?用掩码吗?
 
keypress事件里
if not (key in ['0'..'9','.',#8]) then
key:=#0;
 
to lcl_003:
1.2.3.4.5.不是数字吧
 
其实我早以实现了该功能,即用TextToFloat函数来判断,只是想知道有没有其它的更好的方法
 
SetWindowLong(Edit1.Handle, GWL_STYLE,
GetWindowLong(Edit1.Handle, GWL_STYLE) or
ES_NUMBER);
 
也许可行,我试试。
Tank you all for answers!
 
如果输入时要即时计算,就不要写在keypress里面了,写keyup里
if not (key in ['0'..'9','.',#8]) then
key:=chr(0);
 
一少
你的方法可能不行,keyup 事件还处理诸如vk_down,vk_up之类的键,按你的做法
TStringGrid 的行为可能变的古怪。对否?
 
//以下只数据和退格,你自己改改吧
if ((key<char(48)) or (key>char(57))) then
begin
if (key<>char(8)) then//这个是退格,你可以再加上其它的判断,
begin
key:=char(0);
beep();//报警
end;
end;
 
多人接受答案了。
 
后退
顶部