动态创建控件
var sarr: array [0 .. 2] of tedit; // 动态定义组件数组 But: array of TButton; // 静态定义组件数组 //动态创建控件: SetLength(But, 3); // 设置控件数量 for i := 0 to High(But) - 1 do begin But[i] := TButton.Create(Form1); But[i].Parent := Form1; // 设置父 But[i].Name := ‘But‘ + inttostr(i); But[i].OnClick := 点击按钮;
But[i].Top := i * 30 + 10 end; // 响应动态创建的出来控件的事件 public { Public declarations } procedure 点击按钮(Sender: TObject);// procedure TForm1.点击按钮(Sender: TObject); begin if Sender is TButton then begin if (Sender as TButton).Name = ‘But0‘ then ShowMessage(‘你点击了But0‘); end; end; // 释放控件 procedure TForm1.Button2Click(Sender: TObject); var i: Integer; begin for i := 0 to High(But) do But[i].Free; end;
原文:http://www.cnblogs.com/cgczxc/p/4212133.html