• Delphi 限制Edit输入 多个例子


    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if not (key in [ '.',#8]) then key:=#0; //只能输入小数点
    end;

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if not (key in [ ' 0'..'9',#8]) then key:=#0; //只能输入数字
    end;

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if not (key in [ '.', '0'..'9',#8]) then key:=#0; //只能输入小数点和数字
    end;

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin

    if not ((ord(key)> 128) or (key=#8)) then //只能输入汉字
    begin
    key:=#0;
    end;
    end;

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin

    if not ((ord(key)> 128) or (Key in ['0'..'9','A'..'Z','a'..'z',#8]) or (key=#8)) then //只能输入汉字 数字 大小写字母
    begin
    key:=#0;
    end;
    end;

    ━━━━━━━━━━━━━━━━━━━━━━━━━━

    只能输入汉字,而不能输入数字或其他字符
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    在Edit的OnKeyPress事件中
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if (Ord(Key)<127) or (Ord(Edit1.Text[1])>127) then
      Key:=#0;
    end;


    要使一文本框中只可输入数字,而且当输入的数字错误时还可以通过Backspace键来修改.
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    由于BackSpace的ASCII值是8,所以像以下这样即可
    if (key<>#46) and ((key < #48) or (key > #57)) and (key <> #8) then
      //如果输入不是数字或小数点(#46代表小数点)
      begin
        key:=#0; //取消输入的内容(#0代表空值)
        showmessage('输入错误!请输入数字!'); //发出提示信息
      end;

    方法二:
    if not (key in ['0'..'9',#13,#8 ,#46]) then
    key := #0;
    这样就可以了


    只能输入数字,而不能输入其他字符
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    edit 属性Maxlength 设置2;
    在edit的onkeypress里
    procedure Tmainform.editkeypress(sender:tobject;var key: char );
    var
      Uflag: integer;
    begin
      Uflag:=Tedit(sender).Tag;
      if (not (key in ['1'..'9'])) and (not (key=#8)) then key:=#0;
    end;


    方法二:
    edit的maxlength设置为2;
    在edit的onkeypress事件内
    procedure Ttbdlform.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if key <> #9 then// #9 是空格,你可以查找下数字123是什么值
    showmessage('请输入数字')
    end;


    只能输入数字和小数点
    ━━━━━━━━━━━━━━━━━━━━━━━━━━
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if not (key in ['0'..'9','.',#8,#32]) then
    key:= #0;
    end;
    end.
    但如果你想只输入数字而且有格式限制 那么你最好还是用第三方控件`

    方法二:
    可以在keypress里面加上如下代码,可以输入数字,并且可以使用退格删除数字,可以使用回车
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    case Key of
    '0'..'9', #8, #13, #27, '.' : ;
    else
    begin
    MessageBox(Handle, '请输入数字', PChar('输入错误'), MB_OK + MB_ICONINFORMATION);
    Key := #0;
    end;
    end;
    end;

    ━━━━━━━━━━━━━━━━━━━━━━━━━━

    Delphi 限制Edit输入只能为数字或字母
    procedure TDBConnFrm.editKeyPress(Sender: TObject; var Key: Char);
    begin
    //中能输入 '0 '.. '9 '或 'A '.. 'Z 'OR 'a '.. 'z '和退格
    if not (Key in ['0'..'9','A'..'Z','a'..'z','.',#8]) then
    begin
    Key := #0;
    MessageBeep(1);
    end
    //下以面限制只能输入一个小数点
    else if (Pos( '. ',edit.Text) <> 0) and (Key = '. ') then
    begin
    Key := #0;
    MessageBeep(1);
    end;
    end;

    ━━━━━━━━━━━━━━━━━━━━━━━━━━

    如果要限制编辑框只接收字母(不管大小写)输入,程序如下:

    procedure TForm1.Edit1KeyPress(Sender: TObject; var..Key: Char);
    begin
    if not(key in['a'..'Z',#8])then
    begin
    key:=#0;
    MessageBeep(1); //Beep; 调用系统声音也行!
    end;
    end;

  • 相关阅读:
    [NS]运行行两年了,碰到一个没遇见的问题!
    [C++][MFC]关于菜单的一些操作
    [C++][MFC]CFile的一些简单使用
    [CSharp]HTML中的模式窗口
    [C++]堆栈与堆的概念
    [RS]关于ReportingServices的开发
    [JS]在程序中使用IE的模式对话框!
    [WWF][STUDY]向Workflow传入参数
    [学习]极限编程与敏捷开发
    [C++]什么是纯虚函数
  • 原文地址:https://www.cnblogs.com/jijm123/p/10620743.html
Copyright © 2020-2023  润新知