结合ini,动态生成很多的Combobox或edit,不知道如何去限制输入,比如只能输入数字什么的.
如何去利用events里的函数
还是动态生成的控键,不能在这些函数中写入操作代码
高手请指导!!!!!

解决方案 »

  1.   

    events里没有现成的函数吧?
    你可以在ComboBox或者Edit中的OnKeyPress中定义自己的过滤函数。
      

  2.   

    给你EDIT得,关于combobox得,自己参照着写。
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        procedure Button1Click(Sender: TObject);
        procedure Edit1KeyPress(Sender: TObject; var Key: Char);
      private
        { Private declarations }
      public
        procedure  MyKeypress(Sender: TObject; var Key: Char);
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
     ed : TEdit;
    begin
      ed := TEdit.Create(nil);
      ed.Parent := Form1;
      ed.Left := 100;
      ed.Top := 100;
      ed.Text := '12344';
      ed.OnKeyPress := MyKeypress;
    end;procedure TForm1.MyKeypress(Sender: TObject; var Key: Char);
    begin
       if not (key in ['0'..'9']) and (key <> #8) then
        key := #0;
    end;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
       if not (key in ['0'..'9']) and (key <> #8) then
        key := #0;
    end;end.
      

  3.   

    上面得代码容易看糊涂,下面得比较清晰。
    procedure TForm1.Button1Click(Sender: TObject);
    var
     ed : TEdit;
    begin
      ed := TEdit.Create(nil);
      ed.Parent := Form1;
      ed.Left := 100;
      ed.Top := 100;
      ed.Text := '12344';
      ed.OnKeyPress := MyKeypress;
    end;procedure TForm1.MyKeypress(Sender: TObject; var Key: Char);//给动态生成得控件赋值事件,你可以看看TKeyPressEvent得定义。
    begin
       if not (key in ['0'..'9']) and (key <> #8) then
        key := #0;
    end;