CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

关于Edit!

楼主aloelan(阿岚)2003-12-01 04:17:33 在 Delphi / VCL组件开发及应用 提问

对于要输入金额的Edit,大家一般怎么判断?  
  哪个哥哥能帖个代码看看!  
  我老怕我判断的不完全! 问题点数:0、回复次数:14Top

1 楼haoren0625(晓鹏)回复于 2003-12-01 04:44:13 得分 0

upTop

2 楼flymoon(花儿月)回复于 2003-12-01 05:50:15 得分 0

try    
      StrToCurr(Edit.text);//输入金额  
  except  
      on   EConvertError   do  
          Showmessage('error');  
  end;Top

3 楼jxc163(一寒)回复于 2003-12-01 08:27:18 得分 0

你可以找个货币输入控件。Rxlib中有一个,还有个sncCurrency的控件是专门用来做货币输入的.Top

4 楼delphiseabird(沙鸥)回复于 2003-12-01 08:38:55 得分 0

判断输入的是不是数字和点就够了吧Top

5 楼Alanwn(天痴(日本人与狗不得回答问题))回复于 2003-12-01 08:48:18 得分 0

你可以用这个东西来实现啊  
  Delphi-->Additional-->MaskEdit  
  点他里面的属性EditMask将他改变一个属性就可以了  
  Top

6 楼ycdelphicsdn(小新)回复于 2003-12-01 12:39:56 得分 0

你可以把数字,点和退格键保留下来,其它的键一率屏蔽掉就可以  
  Top

7 楼delphi_xizhousheng(西周生)回复于 2003-12-01 12:50:55 得分 0

两个办法  
  1       onChange:  
  try    
      StrToCurr(Edit.text);//输入金额  
  except  
      on   EConvertError   do  
          Showmessage('error');  
  end;  
   
        onKeyPress:  
   
   
  if   not   (Key   in   ['0'..'9',//#backspace,'.']   then  
                  key:=#0;  
                         
  Top

8 楼angle097113(深思不解)回复于 2003-12-01 23:36:07 得分 0

onKeyPress事件来判断是不是数字小数   以及删除键   就可以了吧Top

9 楼konhon(优华)回复于 2003-12-02 08:50:40 得分 0

try    
      StrToCurr(Edit.text);//输入金额  
  except  
      on   EConvertError   do  
          Showmessage('error');  
  end;  
  Top

10 楼chuchu(维他命C)回复于 2003-12-02 08:59:12 得分 0

要判断数字、小数点、回车、回退键:  
  if   not   (Key   in   ['0'..'9','.',#13,#8])   then   Key   :=   #0;  
  不赞成用Except,老是弹出一个MessageBox会让用户很烦的。  
   
  Top

11 楼chuchu(维他命C)回复于 2003-12-02 08:59:53 得分 0

忘了说了,写在OnKeyPress事件里Top

12 楼hotdog911(昱)回复于 2003-12-02 23:58:32 得分 0

同意Top

13 楼cll007(gazo)回复于 2003-12-03 15:12:51 得分 0

private  
      iDecimalPoint:integer;//纪录是否有小数点  
   
  procedure   TForm1.Edit1Change(Sender:   TObject);  
  begin  
      if   pos('.',(sender   as   tedit).Text   )=0   then  
            iDecimalPoint:=0;  
  end;  
   
  procedure   TForm1.Edit1KeyPress(Sender:   TObject;   var   Key:   Char);  
  begin  
    case   key   of  
    '0'..'9',char(8):   ;  
    '.':     if   iDecimalPoint<1   then  
                      inc(iDecimalPoint)  
                else  
                      key:=char(13);  
    else   key:=char(13);  
    end;  
  end;  
  ---------  
  注意:以上不能兼顾复制到Edit中的字符串Top

14 楼jiayodo(爱上一只猪)回复于 2003-12-03 20:15:18 得分 0

个人觉得还是写keypress时间限制输入好一点Top

相关问题

  • edit
  • Edit Box ??
  • edit color
  • Label+Edit
  • masked edit
  • Edit Control
  • Edit的问题
  • Edit问题
  • Edit问题
  • EDIT问题

关键词

  • 数字
  • idecimalpoint
  • edit
  • 判断
  • 输入金额except
  • try strtocurr
  • sender
  • key
  • do showmessage
  • on econverterror

得分解答快速导航

  • 帖主:aloelan

相关链接

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

广告也精彩

反馈

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