Moin Char,
Zitat von
Char:
TSCtrl ist selbst geschrieben (also dürfte dann von TObject abgeleitet sein).
Dann vermute ich mal, dass Du
Delphi-Quellcode:
type
TSCtrl = class
//...
end;
geschrieben hast. Das wäre dann identisch mit
Delphi-Quellcode:
type
TSCtrl = class(TObject)
//...
end;
Den Destructor würde ich noch abwandeln:
Delphi-Quellcode:
destructor TShapeControl.Destroy;
var i: integer;
begin
for i:=0 to high(FShapeArray) do
FShapeArray[i].Free;
SetLength(FShapeArray,0);
inherited;
end;
Das inherited ist zwar bei Ableitung von TObject nicht zwingend erforderlich, da es hier nichts zu erben gibt, aber besser man gewöhnt sich dran, dann kann man es nicht so leicht vergessen, wenn es mal erforderlich ist.
Bei dieser Konstruktion, bei der Du die Shapes selber wieder freigibst, kannst Du natürlich problemlos nil als Owner übergeben.
Wenn das Hauptformular der Parent sein soll, dann solltest Du einfach dieses als Parameter im constructor übergeben.