下面代码实现动态增加按钮,及释放动态生成的按钮及各按钮事件的实现
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
Button: TButton;
begin
for I := 0 to 8 do
begin
Button:=TButton.Create(Self);
Button.Parent:=Form1;
button.Top:=80+(i-2)*50;
Button.Left:=50;
Button.Width:=280;
Button.Height:=50;
button.Flat:=True;
Button.Caption:=Table1.FieldByName('SINGNAME').AsString;
Table1.Next;
Button.Tag := 1;//用来辨识动态建立的Button组件
Button.Visible:=True;
Button.OnClick := MyClick;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
I: Integer;
begin
for I := ComponentCount-1 downto 0 do
begin
if (Components[I] is TButton) then
begin
if (Components[I] as TButton).Tag = 1 then
begin
//(Components[I] as TButton).Free;
Components[I].Free;
end;
end;
end;
end;
procedure TForm1.MyClick(Sender: TObject);
begin
showmessage((Form1.ActiveControl as TButton).Caption);
if (Form1.ActiveControl as TButton).Caption = 第一个Button的Caption then
执行Button1的代码
if (Form1.ActiveControl as TButton).Caption = 第二个Button的Caption then
执行Button2的代码
.......
end;