CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

小问题请教

楼主blizzard111(黑子)2006-03-03 12:01:37 在 Delphi / VCL组件开发及应用 提问

如何在Edit中只输入数字和小数点而不输入其他字符?有什么好方法吗?能否写详细点,谢谢 问题点数:100、回复次数:7Top

1 楼lextm(LeLe)回复于 2006-03-03 12:06:21 得分 0

处理OnKeyDown/Up等等事件,判断用户按下的键,如果是数字或者小数点就相应,如果不是则忽略用户的输入。这样做一般就可以了。  
   
  用MaskEdit应该也可以。Top

2 楼gflpower(燕赤侠)回复于 2006-03-03 12:40:43 得分 0

使用   ApplicationEvents    
   
   
  截获消息      
   
  时查看消息内容是否合法    
  如果不合法将消息结构都置为0      
  Top

3 楼ourlin(寒江独钓)回复于 2006-03-03 12:41:36 得分 0

用MaskEdit或者:  
   
  procedure   TForm1.Edit1KeyPress(Sender:   TObject;   var   Key:   Char);  
  begin  
      if   not(key   in   ['0'..'9','.',#8])   then   key:=#0;  
  end;  
  Top

4 楼meiqingsong(阿飛)回复于 2006-03-03 12:51:50 得分 0

使用按键处理有个问题那就是可以拷贝其他字符进去Top

5 楼xyz800316(路茫茫)回复于 2006-03-03 13:00:11 得分 0

用OnKeyPress事件控制很好用的!Top

6 楼lwk_hlj(阿凯(学习oralce中))回复于 2006-03-03 13:25:20 得分 100

procedure   TMaterialForm.lePriceKeyPress(Sender:   TObject;   var   Key:   Char);  
  begin  
      if   not   (key   in   ['0'..'9',   #8,   '.'])   then  
          key   :=   #0  
      else  
      begin  
          if   key   =   '.'   then  
          begin  
              if   pos('.',   TEdit(Sender).Text)   >   0   then   key   :=   #0;   //只能输入一个小数点  
              if   (length(TEdit(Sender).Text)   =   0)   then       //如果第一次输入'.'则自动加'0';  
              begin  
                  Tedit(Sender).SelText:='0.';  
                  key:=#0;  
              end;  
          end  
          else  
              if   key   =   '0'   then  
              begin  
                  if   (length(TEdit(Sender).Text)   =   1)   and   (TEdit(Sender).Text   =   '0')   then  
                      key   :=   #0;  
              end  
              else  
              begin  
                  if   (length(TEdit(Sender).Text)   =   1)   and   (TEdit(Sender).Text   =   '0')   then  
                      TEdit(Sender).Text   :=   '';  
              end;  
      end;  
  end;Top

7 楼lovendII(流氓都做了城管)回复于 2006-03-03 13:29:24 得分 0

用MaskEdit方便点Top

相关问题

  • 小小小小小问题!
  • 一个小小小小小小问题
  • 小小,小问题
  • 小小小小问题
  • 小小问题!
  • 小小问题?
  • 小小问题。
  • 小小问题!!!!
  • 小小API
  • 小小问题:)

关键词

  • 消息
  • tedit
  • 小数点
  • maskedit
  • sender
  • 输入
  • key
  • begin
  • then
  • length

得分解答快速导航

  • 帖主:blizzard111
  • lwk_hlj

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo