我动态创建了10个按钮,每个按钮的事件所做的事是不一样的。
我现在写的10个函数分别对应10个按钮的OnClick事件。
如:button1.OnClick := btn1Click(Self);
这样会出错,请问该怎么解决呢?
谢谢

解决方案 »

  1.   

    button1.OnClick := btn1Click;
      

  2.   

    Onclick事件不是函数,是一个过程对象:
      Type TNotifyEvent = procedure (Sender: TObject) ofobject;
    在所在单元内定义成 procedure (Sender: TObject)形式的过程后,直接赋值即可:
      button1.OnClick := btn1Click;
      

  3.   

    BlueSoftEye(紫衣侠隐) 
    你能否在说清楚点?
    我定义完以后直接button1.OnClick := btn1Click;
    提示:
     Incompatible types: 'method pointer and regular procedure'错误
    为什么?
      

  4.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        procedure CreateButtonClick(Sender: TObject);
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.CreateButtonClick(Sender: TObject);
    begin
      showmessage('OK');
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      MYButton : TButton;
    begin
      MYButton:=TButton.Create(self);
      MYButton.Left:=100;
      MYButton.Top:=100;
      MYButton.Width:=75;
      MYButton.Height:=25;
      MYButton.Caption:='MYButton';
      MYButton.Visible:=true;
      MYButton.Parent:=Form1;
      MYButton.OnClick:=CreateButtonClick;
    end;end.
      

  5.   

    同意 cdsgajxlp(起名很难) 的解答
      

  6.   

    MYButton.OnClick:=CreateButtonClick;