unit DynamicCreateControlsPas;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure aBtnonClick(Sender: Tobject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
const
aCaption = 'delphi';
implementation
{$R *.dfm}
procedure CreateBtn(aLeft, aTop, aWidth, aHeigh, aMount: integer;
sCaption: string; aOnWer: TComponent); //封装创建Btn函数
var
i: integer;
begin
aTop:= 0;
for i := 1 to aMount do
with TButton.Create(aOnWer) do
begin
Name := sCaption + inttostr(i);
aTop := aTop + 80;
BoundsRect := Bounds(aLeft, H, aWidth, aHeigh);
Parent := Form1;
end;
end;
procedure Tform1.aBtnonClick(Sender: Tobject); //事件过程
var
i: integer;
begin
for i := 1 to 5 do
begin
if ((Sender as TButton).Caption = acaption + inttostr(i)) then
ShowMessage((Sender as TButton).caption);
end;
end;
procedure TForm1.Button1Click(Sender: TObject); //调用创建btn函数
var
i: Integer;
aBtn: TButton;
begin
for i := 1 to 5 do
begin
if not Assigned(TButton(FindComponent(aCaption + inttostr(i)))) then
CreateBtn(60, 60, 120, 60, 5, aCaption,Form1);
aBtn := TButton(FindComponent(aCaption + inttostr(i)));
aBtn.OnClick := aBtnonClick;
end;
end;
end.