zoukankan      html  css  js  c++  java
  • Delphi中限制文本框(TEdit)只能输入数字

    procedure Tform1.Edit1KeyPress(Sender: TObject; var Key: Char);
    var
     edt: TEdit;
     str, strL, strR: string;
     p: integer;
    begin
       // 获取当前文本内容, 注意要去掉选中部分(因为会被改写).
     edt := TEdit(Sender);
     str := edt.text;
     if Length(edt.SelText) <> 0 then
     begin
       strL := LeftStr(edt.text, edt.SelStart);
       strR := RightStr(edt.text, Length(edt.text) - edt.SelStart - edt.SelLength);
       str := strL + strR;
     end;
       // 限制输入数字/小数点/退格键
     if not (Key in [#8, #13, #127, '.', '-', '0'..'9']) then Key := #0;
       //限制只能输入一个小数点
     if Key = '.' then
     begin
       p := Pos('.', edt.Text);
       if p > 0 then Key := #0;
     end;
       //限制只能在第一位输入且只能输入一个'-'号
     if Key = '-' then
     begin
       if edt.SelStart > 0 then Key := #0;
       p := Pos('-', edt.Text);
       if p > 0 then Key := #0;
     end;
    end;

    //要uses StrUtils单元
    如果程序里有很多的TEdit要做此限制,当然不必给每个控件写代码,把事件指定到同一个过程就行了。

  • 相关阅读:
    2014华为员工年终奖及年薪盘点
    Gradle命令行黑魔法
    委托的那些事
    动态代理
    音乐播放
    Eclipse plugin web site 发布和版本更新
    JavaScript—之对象参数的引用传递
    Bootstrap 3 How-To #1 下载与配置
    代码审计和漏洞挖掘的思路
    核心C#
  • 原文地址:https://www.cnblogs.com/karkash/p/3526758.html
Copyright © 2011-2022 走看看