Ein Frame ist einfacher zu erstellen als eine Komponente. Man erstellt einfach einen Frame im Designer und den instanziiert man dann zur Laufzeit. (Aus zur Entwurfszeit instanziierten Frames macht der Designer ohnehin nichts Vernünftiges.)
Delphi-Quellcode:
var
Frames: TList<TMeinFrame>;
...
procedure TMeineForm.ButtonAddClick(Sender: TObject);
begin
Frames.Add(TMeinFrame.Create(Self));
with Frames[Frames.Count-1] do
begin
{ Startwerte in den Frame schreiben usw. (falls nötig) }
Parent := Self; // wichtig, funktioniert sonst nicht
end;
end;