Zitat:
Es handelt sich nicht um "gewöhnliche Buttons" die ich dynamisch erstellen muss, sondern um irgendwelche Objekte.
Auch da wäre zu überlegen, ob es nicht besser wäre, die Objekte (Nachdem sie auf der Form dargestellt werden, gehe ich davon aus, dass sie alle von TControl abgeleitet sind, und es gibt wohl nur eine begrenzte Anzahl von Varianten), die man nicht mehr braucht, auf Reserve vorzuhalten, statt sie zu zerstören:
Delphi-Quellcode:
Type
Form1=class(Tform)
private
FObjects: array of TControl;
...
function Form1.Newcontrol (Typ: TControlClass): TControl;
var
l: integer;
o: TControl;
begin
for o in FObjects do
if not o.visible and (o is Typ)
then begin
o.Visible:=true;
result:=o;
exit;
end;
result:=Typ.Create(self);
result.Parent:=self;
l:=length(FObjects);
setlength(FObjects, l+1);
FObjects[l]:=result;
end;
und die Controls, die man gerade nicht braucht, statt zu löschen, einfach invisible setzen.