Nein das Parent wird im constructor nicht gesetzt.
Hab mal debuggt und das Parent wird auch nach dem constructor nochmal beim Lesen aus der
DFM auf das Panel1 gesetzt.
Wenn ich im Nachhinein (per Button) das Parent auf das Panel ändere, dann siehts wieder richtig aus.
Delphi-Quellcode:
constructor THTMLEditor.Create(AOwner: TComponent);
function CreateToolPanel(AParent: TWinControl; AWidth: Integer): TPanel;
begin
Result := TPanel.Create(Self);
Result.Parent := AParent;
Result.Align := alLeft;
Result.Left := MaxInt;
Result.Width := AWidth;
Result.BevelOuter := bvNone;
Result.Caption := '';
Result.BevelKind := bkFlat;
Result.BevelEdges := [beRight];
end;
begin
inherited Create(AOwner);
DoubleBuffered := true;
FImageOptions := THTMLImageOptions.Create(Self); // = class(TPersistent)
FToolbarVisible := true;
FToolbarControls := ToolbarAllControls;
Width := 300;
Height := 200;
// ... Panels und Controls werden erstellt. (Panels per CreateToolPanel)
// Parent wird nirgendwo auf AOwner gesetzt, maximal auf Self.
end;
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."