such mal nach "dynamisch" da solltest du auch einiges zu dem Thema finden.
Für den Button könnte es so aussehen.
Delphi-Quellcode:
private
fButtons: Array of TButton;
[...]
var
lButton : TButton;
begin
lButton := TButton.Create(Self);
lButton.Parent := Self;
lButton.SetBounds(0, 0, 200, 50);
lButton.OnClick := DeineClickMethode;
SetLength(fButtons, Length(fButtons) + 1);
fButtons[Length(fButtons) - 1] := lButton;
[...]
//spätestens zu Programmende wieder zerstören
for i := 0 to Length(fButtons) - 1 do
fButtons[i].Free;
SetLength(fButtons, 0);