起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 208|回复: 4

【结贴】TEdit输入控制**

[复制链接]
发表于 2009-1-20 09:23:52 | 显示全部楼层 |阅读模式
现有个特殊需求,要控制Teidt输入只能输入数字,并且控制在小数点后一位,研究了很多方法,都没实现,特此请教!谢谢
回复

使用道具 举报

发表于 2009-1-20 09:31:42 | 显示全部楼层
没有好的方法,只能自己代码控制了

如果可以用字段来实现的话,那么可以用DataEdit来用作输入,对于仅仅输入数字和点,可以在字段的 有效输入字符 属性上定义为“0123456789.”,对于控制只能保留一位小数,那么可以定义一个 一位小数的数字类型的字段就可以了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-20 09:33:23 | 显示全部楼层
好的,结贴,谢谢,我自己试试
回复 支持 反对

使用道具 举报

发表于 2009-1-20 09:43:48 | 显示全部楼层
控制输入数字和小数点且保留一位小数位数的参考代码(对于右键复制粘贴请楼主自己想办法搞定):
procedure TMainForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  with TEdit(Sender) do
  if (not ((key ='0') or (key='1') or (key ='2') or (key = '3')
     or (key = '4') or (key = '5') or (key = '6') or (key = '7') or
     (key = '8') or (key = '9') or (key = '.') or (key = #8)))
    or ((key = '.') and (StringUtils.pos('.',Text) <> 0))
    or ((key <> #8) and (StringUtils.pos('.',Text) <> 0)
        and (selstart + 1 > StringUtils.pos('.',Text))
        and (length(Text) - StringUtils.pos('.',text) = 1)) then
    key := #0;

end;
回复 支持 反对

使用道具 举报

发表于 2009-1-20 10:53:03 | 显示全部楼层
没有好的方法,只能自己代码控制了

如果可以用字段来实现的话,那么可以用DataEdit来用作输入,对于仅仅输入数字和点,可以在字段的 有效输入字符 属性上定义为“0123456789.”,对于控制只能保留一位小数,那么可以定义一个 一位小数的数字类型的字段就可以了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-28 14:54 , Processed in 0.036233 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表