以下动态生成一组按钮, 并赋予其事件处理函数:var arrBtn : array of TButton;procedure setArrBtn();
var i:integer;
begin
  SetLength(arrBtn, 10);
  
  for i:=0 to 9 do begin
      arrBtn[i] := TButton.Create(self);
      arrBtn[i].Caption := 'button' + IntToStr(i);
      arrBtn[i].width := 100;
      //.....设置其它属性
      
      arrBtn[i].tag := i;  //标识控件标志,以便在以后的事件处理函数中识别该控件。
      arrBtn[i].OnClick := OnMyButton;
  end;
end;//自定义的事件响应过程OnMyButton
procedure OnMyButton(Sender: TObject);
begin
  //根据上面设置的tag值来判断按下的是哪个动态生成的控件  case TButton(Sender).tag of
    1 : begin
          //数组按钮1触发的事件
        end;
    2 : begin
        //数组按钮2触发的事件
        end;  
    3 ://.......................    else.................. 
  end;end;