delphi 文本框的keypress事件为什么响应鼠标按键?在线等 ,急急!!!!
我做了一个Delphi程序,在一个文本框中只能输入数字、退格键、小数点,代码如下:procedureTParamConfigForm.lbledt9KeyPress(Se...
我做了一个Delphi程序,在一个文本框中只能输入数字、退格键、小数点,代码如下:
procedure TParamConfigForm.lbledt9KeyPress(Sender: TObject; var Key: Char);
begin
if not((key in ['0'..'9',#8,'.']) ) then // #8 表示在ASCII表中的第8个字符,此处为退格键
begin
Messagebox (0,'输入不是数字或小数点,请重新输入!','警告',MB_ICONEXCLAMATION);
key := #0; // #0 表示在ASCII表中的第0个字符,此处为空字符
end;
end;
可是我在调试时,按住鼠标左键选中文本框中的内容后不放松,然后把鼠标移到文本框之外,这时就产生了文本框的keypress事件,即弹出消息对话框“输入不是数字或小数点,请重新输入!”;或者用鼠标双击文本框时同样也可以触发文本框的keyPress事件。
小弟是新手,请各位前辈们解释一下为什么会这样?小弟不胜感激! 展开
procedure TParamConfigForm.lbledt9KeyPress(Sender: TObject; var Key: Char);
begin
if not((key in ['0'..'9',#8,'.']) ) then // #8 表示在ASCII表中的第8个字符,此处为退格键
begin
Messagebox (0,'输入不是数字或小数点,请重新输入!','警告',MB_ICONEXCLAMATION);
key := #0; // #0 表示在ASCII表中的第0个字符,此处为空字符
end;
end;
可是我在调试时,按住鼠标左键选中文本框中的内容后不放松,然后把鼠标移到文本框之外,这时就产生了文本框的keypress事件,即弹出消息对话框“输入不是数字或小数点,请重新输入!”;或者用鼠标双击文本框时同样也可以触发文本框的keyPress事件。
小弟是新手,请各位前辈们解释一下为什么会这样?小弟不胜感激! 展开
展开全部
单纯看你的代码,我测试过了没有什么问题。
不过,如果你只是要实现输入数字的功能,推荐你使用TRzNumbericEdit控件。这个控件可以很简单的实现整数或浮点数的输入。通过IntegersOnly属性修改一下就可以了。
这个控件是Raize Components中的一个,里面还包含了其他许多有用的控件。Delphi最大的好处就是控件很多,多用控件可以大大提高效率。Raize的下载地址网上搜索一下即可。我就不提供了。
不过,如果你只是要实现输入数字的功能,推荐你使用TRzNumbericEdit控件。这个控件可以很简单的实现整数或浮点数的输入。通过IntegersOnly属性修改一下就可以了。
这个控件是Raize Components中的一个,里面还包含了其他许多有用的控件。Delphi最大的好处就是控件很多,多用控件可以大大提高效率。Raize的下载地址网上搜索一下即可。我就不提供了。
追问
我找到原因了,原来是我的电脑问题!
我把程序拷到别的电脑上运行没有任何问题,但是在我的电脑上运行就不行!不知道是不是因为我电脑是笔记本的原因还是什么的,我现在不知道怎么解决这个问题,不过我会试一下你说的控件!谢谢你了!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询