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

  • 相关阅读:
    1
    最大子串
    线段树
    mybatis分页插件
    springmvc下载文件
    获“领跑衫”感言
    finnal 评论 II
    用户使用报告
    事后诸葛亮会议 (尸体解剖)
    final阶段成员贡献分
  • 原文地址:https://www.cnblogs.com/karkash/p/3526758.html
Copyright © 2011-2022 走看看