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/)
-   -   Delphi treeview auf mdiform (https://www.delphipraxis.net/49557-treeview-auf-mdiform.html)

kerim80 12. Jul 2005 22:59


treeview auf mdiform
 
Hallo,

habe eine TreeView auf einer MDIForm mit Align = alClient.
In der Treeview sind einträge die wiederum MDIChild´s aufrufen
aber

wenn ich die MDIChild´s aufrufe erscheinen diese hinter dem Treeview :(

benutze auch folgenden Code beim aufrufen eines MDICHíld´s

Delphi-Quellcode:
procedure Tdesktop.INITFORM(f: TForm);
begin
  f.BringToFront;
  if (f.windowstate=wsminimized) or (f.windowstate=wsnormal) then
     f.windowstate := wsmaximized;
end;
was kann ich machen ???

Eisenherz 13. Jul 2005 08:52

Re: treeview auf mdiform
 
Wenn man auf einem MDI-Formular einen TreeView oder ein anderes WinControl platziert, dann steht den MDI-Childs nur der Platz zur Verfügung, der nicht vom TreeView belegt ist. Align = alClient ist also ganz schlecht. Mit Algin = alLeft würdest du vielleicht glücklicher werden.
Evtl. kannst du auch damit leben, das TreeView selbst in einem MDI-Child zu platzieren.
Du könntest natürlich auch auf MDI verzichten und das ganze von Hand machen.

kerim80 13. Jul 2005 17:05

Re: treeview auf mdiform
 
gut ich öffne jetzt die treeview in einem MDCHild. funktioniert auch.

wie bekomme ich denn jetzt die Buttons Minimieren, Maximieren und Schließen oben rechts im fenster des MDIChild´s weg
ich hab den Borderstyle des MDIChild´s auf bsNone gesetzt aber der ignoriert das und zeigt mir die Buttons trotzdem.


------------------------------------------------------------------------------------------------------------------------------------------------

oder
ich mache das wie früher

eine MDIForm mit dem TreeView (Align = alClient) und dann die MDIChild´s erzeugen
aber das die MDICHild´s im Vordergrund sind und nicht das TreeView....



Ich schaue auch schon die ganze zeit im internt nach lösungen aber ich finde nicht
vielleicht hab ich einfach nur einen BlackOut...



Bin für jeden Vorschlag dankbar

jaikai 13. Jul 2005 17:18

Re: treeview auf mdiform
 
Hi

ganz einfach:
Borderless MDI Form

To create an MDI Form without a border, you need to override the CreateParams() method and modify the style and exStyle bytes there.


Code:

type
  TForm1 = class(TForm)
    // ..
    procedure CreateParams(var Params: TCreateParams);
      override;
  end;

implementation

{$R *.DFM}

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  with Params do
  begin
    Style := Style and WS_BORDER;
    exStyle := exStyle and WS_DLGFRAME;
  end;
end;
[code]

kerim80 13. Jul 2005 17:38

Re: treeview auf mdiform
 
1.
ich hatte mir gerade so geholfen das ich im FormCreate die Buttons einzeln rausgelöscht habe

Delphi-Quellcode:
BorderIcons := BorderIcons - [biSystemMenu, biMaximize, biMinimize, biHelp];
wenn ich nun mehrere MDHchild´s erzeugt habe und danach diese schließe
erhalte ich folgendes Bild :)

C:\Dokumente und Einstellungen\x\Desktop\mdi.jpg

---------------------------------------------------------------------------------------------------
2.
dann hab ich folgendes unter FormActivate
Delphi-Quellcode:
   
self.BringToFront;
if (self.windowstate=wsminimized) or (self.windowstate=wsnormal) then
  self.windowstate := wsmaximized;
das funktioniert sehr gut aber dann hab ich folgendes problem:
wenn ich mehrere mdichild´s geöffnet habe und dann eins davon schließe und die TreeView-Form
erhaltet den Focus dann wird das Fenster maximiert und ich komme nicht mehr an die anderen fenster dran :)
---------------------------------------------------------------------------------------------------
3.
der vorschlag von dir jaikai ist fast das gleiche wie in Punkt 1.
es ist auf jedenfall besser als mein Code aber hat die gleichen Auswirkungen wie bei 1.



Ich kriege die Kriese :wall:

Die beste Lösung wäre das ich die TreeView auf die MDIForm drauftue und dann die MDIChild´s
erscheinen beim erzeugen vor dem TreeView. Aber wie??????

jaikai 13. Jul 2005 20:05

Re: treeview auf mdiform
 
Meines Wissens nach ist es so gut wie unmöglich, von einem MDI aus den anderen zu "füttern". Ich habkeine Lösung gefunden. Ich hab mir so geholfen, daß ich über das Hauptprogramm die notwendigen Routinen ausgelagert habe. Zum Teil über Timer gesteurt ablaufen lasse.
Alles andere war Murks...

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 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