请问如何动态生成50个按钮,并使这些生成的按钮的单击事件为弹出一个对话框里面显示这个按钮的caption?

解决方案 »

  1.   


    TForm1 中的增加的事件处理
      private
        procedure EOnClick(sender: TObject);某个过程中
    var
      i:integer;
      aE: TEdit
    for i:=1 to 50 do
    begin
      aE := TEdit.create(self);
      aE.parent := self;
      aE.top := i* 20;
      aE.left := i*50;
      aE.width := 60;
      aE.height := 18;
      aE.onclick := EOnClick;       // 事件
      aE.caption := 'Edit' + IntToStr(i);
      aE.name := 'Edit' +  + IntToStr(i);
      aE.Visible := true; 
    end;
    procedure TForm1.EOnClick(sender: TObject);
    begin
      showmessage(TEdit(sender).caption));
    end;
    以上程序中可以加入更严格的测试