• 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要做此限制,当然不必给每个控件写代码,把事件指定到同一个过程就行了。

  • 相关阅读:
    iOS面试题
    iOS-block
    iOS开发设计模式
    iOS-宏定义
    正则表达式(转)
    iOS-textfield控制光标开始位置
    initWithNibName&initWithCoder &awakeFromNib&UIView常见属性方法
    iOS应用生命周期
    iOS-app发布新版本步骤
    iOS从App跳转至系统设置菜单各功能项
  • 原文地址:https://www.cnblogs.com/m0488/p/3526758.html
Copyright © 2020-2023  润新知