请问如何控制使Edit中输入的值必须是0和100之间的一个数值
写在这个Edit的哪个事件中?

解决方案 »

  1.   

    设长度为3
    在OnKeyPrsee中检查
      

  2.   


    onkeydown
    if not key in['0'..'9'] and length(Edit1.text)>2 then
    begin
    end;
      

  3.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
      begin
      if key=#8 then
        key:=#0;
    end;
      

  4.   

    onchange事件:
    var str:string;
    begin
    try 
       strtofloat(str);
    except 
       showmessage('error');
    end
    然后判断在1--100之间
      

  5.   

    我上面的方法是屏蔽backspace键
    SetWindowLong(edit1.Handle, GWL_STYLE,GetWindowLong(edMaxCount.Handle, GWL_STYLE) or ES_NUMBER);
    调用这个api可以限制edit1的输入只限于数字,至于0-100之间就随便写句代码来控制
      

  6.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Edit1: TEdit;
        procedure Edit1Change(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      old : integer = 0;implementation{$R *.dfm}procedure TForm1.Edit1Change(Sender: TObject);
    var
      i: integer;
    begin
      try
        i := Strtoint(Edit1.Text);
        if (i > 100) or (i< 0) then
          raise exception.Create('Err')
        else old := i;
      except
        Edit1.Text := IntToStr(old);
      end;
    end;end.