Hallo,
ich hab eine Componente abgeleitet vom Panel worauf jetzt
2 RichTextBoxes und 1 Splitter sollen.
Rich Splitter Rich - als anordnung.
nun ist es jedoch so das das die letzte RichTextBox
bei Dock = DockStyle.Fill das gesamte panel einnimmt
obwohl das erste RichTextBox Element auf Dock := Dockstyle.left steht.
wie kommt das?
hier der generierende Code:
Delphi-Quellcode:
procedure TRichTextBoxAdvanced.InitComponent;
begin
BorderStyle := System.Windows.Forms.BorderStyle.Fixed3D;
FLeftRichTextBox := System.Windows.Forms.RichTextBox.Create;
FMainRichTextBox := System.Windows.Forms.RichTextBox.Create;
FSplitter := System.Windows.Forms.Splitter.Create;
Controls.Add(FLeftRichTextBox);
Controls.Add(FSplitter);
Controls.Add(FMainRichTextBox);
//Left RichTextBox
with FLeftRichTextBox do
begin
Parent := Self;
BackColor := Color.DarkGray;
BorderStyle := System.Windows.Forms.BorderStyle.None;
Dock := DockStyle.Left;
ForeColor := Color.Black;
ReadOnly := True;
ScrollBars := System.Windows.Forms.RichTextBoxScrollBars.None;
TabStop := False;
Width := 20;
end;
//Right RichTextBox
with FMainRichTextBox do
begin
Parent := Self;
BorderStyle := System.Windows.Forms.BorderStyle.None;
Dock := DockStyle.Fill;
ScrollBars := System.Windows.Forms.RichTextBoxScrollBars.None;
TabIndex := 0;
end;
//Splitter
with FSplitter do
begin
Parent := Self;
BorderStyle := System.Windows.Forms.BorderStyle.FixedSingle;
Cursor := System.Windows.Forms.Cursors.VSplit;
Dock := DockStyle.Left;
Enabled := True;
TabStop := False;
Width := 20;
end;
end;
die routine wird beim erstellen der Componente aufgerufen.
die FMainRichTextBox bedeckt das gesamte panel und darüber
liegen die LeftRichTextBOx und der Splitter, Splitter ganz links und daneben dann leftrich.
ich versteh nicht warum das nicht korrekt auf dem panel dockt.
durch Control.Add sind doch alle 3 Objekte childs des Panels.
Wenn das Meer unruhig ist und der Wind die Wellen treibt, erfreut es, vom Strand aus die Mühen eines Anderen zu beobachten.