procedure TForm1.Button1Click(Sender: TObject);
var x :TButton;
begin
x := TButton.Create(form2);
 with x do begin
parent := form2;
name := 'but';
top := 400;
left := 25;
width := 75;
caption := '开始';visible :=true;end;
end;
//下面是Unit3-单元文件unit Unit3;interfaceuses  Dialogs,unit1; procedure ClickMe;implementation procedure ClickMe;
  begin
showmessage('abcdefg');
  end;
end.
怎样把创建的控件but,单击事件时,响应ClickMe这个函数?

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var x :TButton;
    begin
      x := TButton.Create(form2);
      with x do begin
        parent := form2;
        name := 'but';
        OnClick := Form3.ClickMe  //--------
        top := 400;
        left := 25;
        width := 75;
        caption := '开始';
        visible :=true;end;
    end;
      

  2.   

    procedure ClickMe;
      begin
    showmessage('abcdefg');
      end;不这过程改成函数就行了
      

  3.   

    在unit3中需要定义一个类。
    在unit2 中uses unit3后引用类的方法(我试了一下,unit3中用静态类方法,动态类方法都可以)。
      

  4.   

    将ClickMe过程改为procedure ClickMe(Sender:TObject)
    然后在创建but时加上一句:
    x.OnClick:=Unit3.ClickMe;即可。
    注意你要在创建but的那个单元引用Unit3单元。