Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Prism Winforms Panel Problem bei Child Componenten (https://www.delphipraxis.net/49539-winforms-panel-problem-bei-child-componenten.html)

Master_BB 12. Jul 2005 17:36


Winforms Panel Problem bei Child Componenten
 
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.

Robert_G 12. Jul 2005 17:43

Re: Winforms Panel Problem bei Child Componenten
 
Zitat:

Zitat von Master_BB
Hallo,
ich hab eine Componente abgeleitet vom Panel worauf jetzt
2 RichTextBoxes und 1 Splitter sollen.

Warum nicht einfach ein Usercontrol, dass du im Designer bearbeiten kannst? :gruebel:
Ich gehe mal davon aus, dass du NICHT nach Hier im Forum suchenDockStyle gesucht hast. Mich würde wirklich interessieren warum... :gruebel:
Dort findet man zum Beispiel sowas


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz