我在一个类里面有几个Button控件,在类创建的时候,这些button也创建,但不知如果给它们添加单击事件?请高手们指点指点!

解决方案 »

  1.   

    我知道怎么解决了,TButton有个OnClick属性,将函数名字赋给它即可。哈哈哈哈
      

  2.   

    举个例子
    先写事件过程
    procedure ButtonClick(Sender: TObject);
    begin
    end;
    然后直接赋值 XXX.OnClick := ButtonClick;
      

  3.   

    http://search.csdn.net/Expert/topic/55/55880.xml?temp=.943432
      

  4.   

    下面代码实现动态增加按钮,及释放动态生成的按钮及各按钮事件的实现
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: integer;
      Button: TButton;
    begin
      for I := 0 to 8 do
      begin
        Button:=TButton.Create(Self);
        Button.Parent:=Form1;
        button.Top:=80+(i-2)*50;
        Button.Left:=50;
        Button.Width:=280;
        Button.Height:=50;
        button.Flat:=True;
        Button.Caption:=Table1.FieldByName('SINGNAME').AsString;
        Table1.Next;
        Button.Tag := 1;//用来辨识动态建立的Button组件
        Button.Visible:=True;
        Button.OnClick := MyClick;
      end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      I: Integer;
    begin
      for I := ComponentCount-1 downto 0 do
      begin
        if (Components[I] is TButton) then
        begin
          if (Components[I] as TButton).Tag = 1 then
          begin
            //(Components[I] as TButton).Free;
            Components[I].Free;
          end;
        end;
      end;
    end;procedure TForm1.MyClick(Sender: TObject);
    begin
      showmessage((Form1.ActiveControl as TButton).Caption);
      if (Form1.ActiveControl as TButton).Caption = 第一个Button的Caption then
        执行Button1的代码
      if (Form1.ActiveControl as TButton).Caption = 第二个Button的Caption then
        执行Button2的代码
      .......
    end;
      

  5.   

    请问楼上的,我也碰到这个问题,请问你的MyClick是如何定义的啊??我就定义成过程不对。报错如下:
    Incompatible types: 'TNotifyEvent' and 'procedure, untyped pointer or untyped parameter'请楼上指教
      

  6.   

    我的问题通过九转三折有了点眉目,但是我的单击事件是要删除这个控件,我的代码总是报错,虽然能把控件删除。
    img[i].Destroy;
    总是报内存错,img[i]是一个TImage的数组. 请问会是什么原因呢?
      

  7.   

    用Free方法就行了!另外,最好用img[i]的name属性来调用。