我想一个动态生成的控件赋予一个动态创建的事件,不想事先写好

解决方案 »

  1.   

    不知楼主的”动态创建的事件”是在什麽Timing创建?
      

  2.   

    procedure TForm1.FormCreate(Sender: TObject);
    var
      i:Integer;
      btnList:array[1..20] of Tbutton;
    begin
      for i:=1 to 20 do
      begin
        btnList[i]:=Tbutton.Create(Self);
        btnList[i].Parent:=self;
        if i<=10 then
        begin
          btnlist[i].Top:=20;
          btnlist[i].Left:=i*60;
        end
        else begin
           btnlist[i].Top:=60;
           btnlist[i].Left:=(i-10)*60;
        end;
        btnList[i].Tag:=i;
        btnList[i].Caption:=IntToStr(i);
        btnList[i].Onclick:=ButtonClick ;
      end;
    end;procedure TForm1.ButtonClick(Sender: TObject);
    begin
      showmessage(IntToStr((Sender as TButton).Tag))
    end;end.生成20个按钮  每个按钮有click事件呵呵 记得给分啊
      

  3.   

    动态创建的事件要这样写:
    procedure Events(sender:tobject);
    begin
      //dosomething
      //具体是哪个控件要用sender来判断
      if sender is Tbutton then
        (sender as tbutton).caption:='';
      //懂了么?
    end;