tempad
Readygo技术搜索引擎 >>PHP技术 >> 控制Edit的输入方式

控制Edit的输入方式

Readygo技术搜索引擎 网络搜索 efish 2008-1-14 16:12:38

控制Edit的输入方式

楼主xywu(长江里的鱼)2002-07-20 10:14:46 在 Delphi / VCL组件开发及应用 提问

请问我想在Edit中只让用户输入金额(2.00或54.70)请问该怎么实现 问题点数:30、回复次数:3Top

1 楼hhzqf1980(hh)回复于 2002-07-20 10:19:58 得分 30

在edit的onkeypress事件中:  
  if   not   (key   in)   then  
          key:=#0;  
  然后在判断‘.’是否已经存在....Top

2 楼Jhzyz(自由人/Libero)回复于 2002-07-20 10:37:24 得分 0

我程序中的代码改的,你参考。  
   
  procedure   TForm1.Edit2KeyPress(Sender:   TObject;   var   Key:   Char);   //控制输入数字和小数点  
  begin  
            if   not   (key   in   )   then  
                    key:=#0;   //also   chr(0)  
            if   key=Char(VK_Return)   then  
                  SelectNext(ActiveControl,True,True);      
  end;  
   
  procedure   TForm1.Edit2Exit(Sender:   TObject);   //这是你要的功能  
  begin  
        if   Edit2.Text<>""   then  
          begin  
            try  
                    StrtoFloat(Edit1.Text);  
            except  
                Begin  
                    Application.MessageBox("请输入合法的数字!","错误:",MB_OK);  
                    Edit1.SetFocus;  
                    exit;  
                end;  
            end;  
          end;  
          if   (StrtoFload(Edit1.Text)<>2)   or   (StrtoFload(Edit1.Text)<>54.7)   then    
              begin  
                    Application.MessageBox("录入金额错误,请重新录入!","错误:",MB_OK);  
                    Edit1.SetFocus;  
              end;  
  end;Top

3 楼BS()回复于 2002-07-20 10:43:49 得分 0

建议在onChange里加  
  begin  
      try  
          if   trunc(StrtoFloat(Edit1.text)*100)*10=trunc(StrtoFloat(Edit1.text)*1000)   then   EXIT;  
              showmessage("格式为**.**");  
              Edit1.text:=copy(Edit1.text,1,length(Edit1.text)-1)  
      except  
          showmessage("输入错误");  
          Edit1.text:=copy(Edit1.text,1,length(Edit1.text)-1)  
      end;  
  end;Top

责任编辑: efish 参与评论 查找更多:
相关文章
3层Client/Server模式? 请教概念。 3层Client/Server模式? 请教概念。
有谁给我讲解这段代码? 有谁给我讲解这段代码?
请问:VC++与C++的区别以及各自的好处? 请问:VC++与C++的区别以及各自的好处?
大家帮忙,sql基本问题 大家帮忙,sql基本问题
delphi 6.0系列号哪里有?? delphi 6.0系列号哪里有??
这个程序那里错了 这个程序那里错了
我在调用DLL(DLL中有ADOSTOREDPROC *) 时出错:… 我在调用DLL(DLL中有ADOSTOREDPROC *) 时出错:invaild class typecast 详见内容
一个pascal的问题 一个pascal的问题
关注Java Data Object ! 关注Java Data Object !
如何用JFileChooser 来只显示目录? 如何用JFileChooser 来只显示目录?
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn

分类导航
Readygo技术搜索引擎