Naja, der genannte Fehler an sich sollte sich ja leicht beheben lassen indem du prüfst, ob FParent nil ist:
Delphi-Quellcode:
if FParent <> nil then
begin
FParent.Left := ALeft;
FParent.Top := ATop;
FParent.Width := AWidth;
FParent.Height := AHeight;
end;
Allerdings sehe ich nicht so recht wie das ansonsten klappen könnte die Objekthierarchie im Konstruktor so hinzubiegen wie du dir das vorstellst. Was dabei passiert müsste ich einmal testen, aber ich sehe da andere Probleme.
// EDIT:
- Warum benutzt du da überhaupt FParent statt FPanel?
- SetBounds reicht nicht, da bei dem Setzen der einzelnen Werte die anderen aus der Komponente selbst ausgelesen werden.
- Wozu setzt du in Create Parent? Das muss danach doch ohnehin passieren, vielleicht soll es bei dem Create auch noch gar nicht passieren in der Anwendung.
- Free darfst du nicht aufrufen, wenn FPanel (deinem Aufruf nach ja so gewollt) einen Owner hat.