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 MDI Fenster nur bis zu einer gewissen Größe maximieren (https://www.delphipraxis.net/109291-mdi-fenster-nur-bis-zu-einer-gewissen-groesse-maximieren.html)

michaxx 27. Feb 2008 17:30


MDI Fenster nur bis zu einer gewissen Größe maximieren
 
Hallo,

Habe ein Problem mit MDI Fenster.
Ich verwende die OutlookBar (Jedi) auf der linken Seite im MDIParent anzeigen.

Öffne danach ein MdiChild, funktioniert alles super.
Nur wenn ich dieses MdiChild maximiere, vergrößert es sich übers ganze MdiParent, und der linke Teil des MdiChild wird von der OutlookBar verdeckt.
Kann mir jemand helfen, das ich es schaffe, das MdiChild zu maximieren, so dass die OutlookBar und das ganze MdiChild sichtbar sind.

Vielen Dank im Voraus

Michael

PascalKlaus 5. Mai 2008 10:49

Re: MDI Fenster nur bis zu einer gewissen Größe maximieren
 
Hast du die Properties richtig gesetzt:
MainForm.FormStyle := fsMDIForm
OutlookBar.Align := alLeft
und
ChildForm.FormStyle := fsMDIChild ?

Dann muss das automatisch funktionieren.

michaxx 5. Mai 2008 12:37

Re: MDI Fenster nur bis zu einer gewissen Größe maximieren
 
Hallo,

vielen Dank erstmal, meine Frage ist ja schon einige Wochen alt :)

ich hatte damals ein wenig Schmarrn geschrieben ;)

Die Outlookbar selber befindet sich nicht in der Mainform, sondern auch in einer MDIChild-Form.
Nun wollte ich verhindern, dass ein anderes Fenster diese Form mit dem Outlook-Control überdecken kann, also beim maximieren
den rechten Rand dieser Outlookbar-Form beachtet.

Hatte verschiedenes - was ich so gefunden hatte - getestet,aber nichts war richtig toll. Meine von Foxpro übetragene Logik klappte auch nicht so ;) Naja, hatte das Problem dann erstmal verschoben, da ich auch erst mal wieder warm mit Delphi werden mußte, waren einige Jahre Pause dazwischen.

Bedeutet: das Problem hängt noch so rum ;)

Michael

PascalKlaus 5. Mai 2008 13:09

Re: MDI Fenster nur bis zu einer gewissen Größe maximieren
 
Wenn die OutlookBar aber Funktionen für andere Fenster enthält (schlussfolgere ich daraus, dass sie sichtbar sein soll) gehört sie aber eigentlich ins Hauptfenster - oder?

rollstuhlfahrer 5. Mai 2008 15:32

Re: MDI Fenster nur bis zu einer gewissen Größe maximieren
 
man könnte sie auch in ein Client-Fenster stecken, müsste das Client-Fenster aber bei jedem verschiebe/vergrößerungs/verkleinerungsvorgang das Fenster nach ganz oben setzen oder dem Fenster sagen FormStyle := fsStayOnTop,
was dazu führt, dass das Fenster kein MDI-Kind mehr ist.


rollstuhlfahrer

michaxx 5. Mai 2008 16:39

Re: MDI Fenster nur bis zu einer gewissen Größe maximieren
 
Zitat:

Zitat von PascalKlaus
Wenn die OutlookBar aber Funktionen für andere Fenster enthält (schlussfolgere ich daraus, dass sie sichtbar sein soll) gehört sie aber eigentlich ins Hauptfenster - oder?

ja, habe ich drüber nachgedacht. Da das Programm aber sehr komplex ist, wollte ich es möglichst modular aufbauen.
Im Prinzip ist es eine Konvertierung von einem VFP Programm, dort hatte ich es identisch gelöst.

Hier habe ich aber alle Verschiebe/Vergrößerungsaktionen selber implementiert und es nicht dem normalen Windows - Fensterhandling überlassen, so dass ich dann auch die Existenz der Sidebar und Ihrer Position abfragen und berücksichtigen kann.

So im Prinzip:

OnResize:

wenn maximized dann
form.width=form.width - nSidebar.width

(Sidebar.left=0 natürlich)


Die Übertragung der VFP Logik ist mir aber bisher nicht gelungen, Delphi hat wohl seine eigene Meinung über manche Dinge.
Aber ich denke mit zunehmender Beschäftigung mit Delphi finde ich dann den optimalen Weg, sind halt noch einige Lücken.

Viele Grüße
Michael

shmia 5. Mai 2008 16:48

Re: MDI Fenster nur bis zu einer gewissen Größe maximieren
 
Zitat:

Zitat von michaxx
Die Outlookbar selber befindet sich nicht in der Mainform, sondern auch in einer MDIChild-Form.
Nun wollte ich verhindern, dass ein anderes Fenster diese Form mit dem Outlook-Control überdecken kann, also beim maximieren
den rechten Rand dieser Outlookbar-Form beachtet.

Die Outlookbar sollte direkt auf dem Mainform liegen. Schau dir mal das Delphi Demoprojekt unter ...\Demos\Docking an.
Dort wird gezeigt, wie man Toolbars aus dem Hautpformular rausziehen kann und auch wieder andocken kann.
(ziemlich ähnlich wie das die Delphi IDE selber kann)


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