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

  • 相关阅读:
    .net持续集成cake篇之使用vs或者vscode来辅助开发cake脚本
    Redis集合类型
    Git如何合并Commit
    Redis列表类型
    Redis散列表类型
    Redis字符串类型
    2. 引用计数法(Reference Counting)
    调皮的控制台
    Python str与bytes之间的转换
    安全速查
  • 原文地址:https://www.cnblogs.com/m0488/p/3526758.html
Copyright © 2011-2022 走看看