新手请教,如何让一个Editbox只能输入数字?

解决方案 »

  1.   

    自己写程序控制,也可以换成MaskEdit
      

  2.   

    中EDITBOX的ONKEYDOWN中写程序
    if not (key in ['0'..'9',#13,]) then
      

  3.   

    sui控件可以
    他有专门的一个控件叫suiNumberEdit
    不仅如此,而且可以控制输入的数字的格式
    比如小数点后几位
    自己做东西用这个很好,但是如果是商业应用就自己写吧,它是收费的!!!
      

  4.   

    自己写程序怎么写啊,我的要求很简单,只能输入数字,以及DELETE、BACKSPACE键。
    或者更简单一点,只准输入正整数。
      

  5.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if not (Key in ['0'..'9',#8,#46]) then key := #0;
    end;
      

  6.   

    中EDITBOX的OnKeyPress中写程序
    if (key<>#13) and (key <> #8) then
    begin
      if not (key in ['0','1','2','3','4','5','6','7','8','9'])then
      begin
        key := #0;
      end;
    end;
      

  7.   

    自己从TEDIT上继承一个组件写unit Edit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Controls, StdCtrls;type
      TEdit1 = class(TEdit)
      private
        { Private declarations }  protected
        { Protected declarations }
      public
        { Public declarations }
        procedure WMChar(var Message: TWMChar); message WM_CHAR;  published
        { Published declarations }
      end;procedure Register;implementation
    ////////////////////////////////////
    /////////编写于 7-2 ///////////////
    ////用于人力资源//////////////////
    procedure Register;
    begin
      RegisterComponents('Samples', [TEdit1]);
    end;
    procedure tedit1.WMChar(var Message: TWMChar); 
    begin
      if Chr(Message.CharCode)in ['0'..'9',#46,#13,#8,#190,#37,#37] then
        inherited;end;
    end.