生成不定个数的按钮可以用动态数组,如:
mybtn:array of TButton;
至于它们的ONCLICK事件吗!我也正在找答案,谁知道的麻烦也告诉我一声!谢了:)

解决方案 »

  1.   

    可以根据 Tag 区别呀,只需要一个onclick时间就可以区别了procedure FormCreate;
    var i : longint;
    begin...for i := 1 to BtnCount do
      begin
        mybtn[i].tag := i;
        mybtn[i].onclick := MyButtonClick;
      end;
    end;然后在 onclick 里面procedure MyButtonClick(sender:tobject);
    begin  ...  case (sender as TButton).Tag of
        1 : Proc1;
        2 : Proc2;
        ...
        n : ProcN
      end;...end;if 
      

  2.   

    ButtonXX.onclick := MyProcedure
      

  3.   

    hehe,Wescom的为正解记住了:
    事件就是方法的指针,可以将方法的地址赋值给事件。
      

  4.   

    我补充一点,MyProcedure必须在某个类中声明,并且要声明得和onClick一样
      

  5.   

    我的搞掂了。在程序中加了如下几句:
    在FORM1的private中定义过程
    procedure mybtnclick(Sender: TObject);然后是此过程的实现语句:
    procedure TForm1.mybtnclick(Sender:TObject);
    begin
      case (Sender as TButton).Tag of  //要照169说的给每个动态生成控件的TAG赋值。
        1:......
        ...
      end;
    end;
      还要记得在给每个动态生成控件的赋值时加上一句:mybtn[i].onclick:=mybtnclick;
    现在就OK了