Ich würde mir eine globale Varibale vom Typ TObjectList in der Form definieren. Diese wird im OnCreate erstellt und im OnDestroy der Form wieder zerstört. Die Button erstellen Routine würde dann ungefähr so aussehen:
Delphi-Quellcode:
var
NewButton: TBitBtn;
begin
NewButton := TBitBtn.Create(Self);
NewButton.Parent := Self;
NewButton.Caption := 'Aus;
NewButton.OnClick := ButtonClick;
DeineObjektListe.Add(NewButton);
Das kann man auch wunderbar in eine Schleife packen um mehrere Buttons zu erstellen. Jetzt noch die onClick-Methode erstellen:
Delphi-Quellcode:
if Sender is TBitBtn then
begin
if TBitBtn(Sender).Tag = 0 then
begin
TBitBtn(Sender).Tag := 1;
TBitBtn(Sender).Caption := 'An';
end
else
begin
TBitBtn(Sender).Tag := 0;
TBitBtn(Sender).Caption := 'Aus';
end;
end;
Beim OnDestroy der Form gehst du noch die Objektliste durch und
.Freest alle Buttons bevor du letztendlich die Liste freigibst. Und das wars auch schon...