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, aber irgendwie nicht ganz... (https://www.delphipraxis.net/45536-mdi-aber-irgendwie-nicht-ganz.html)

dizzy 8. Mai 2005 00:32


MDI, aber irgendwie nicht ganz...
 
Hi Leute!

Ich wollte mich mal dran begeben ein altes Programm von mir weiter zu basteln, und es in diesem Zuge zu einer MDI-Anwendung zu machen. Allerdings habe ich da so meine Schwierigkeiten...

Die grundlegende Idee: Eine Toolbar über die die diversen Child-Fenster sicht- bzw. unsichtbar geschaltet werden können. Es soll z.B. ein Child geben, in dem ein Control sitzt. Dieses Control soll von Anfang an in dieser Instanz fortbestehen, auch wenn es nicht sichtbar ist. Die Childs sollen jedoch nicht minimiert werden, wenn sie weggeschaltet werden, sonern es soll nichts mehr von ihnen zu sehen sein.
Ich habe hier schon den Tipp gefunden im OnClose des Childs Action auf caFree zu setzen. Leider wird dabei mein Control ja mit zerstört. Ein Versuch mit caHide scheiterte daran, dass man angeblich MDI-Children nicht verbergen kann :?

Wie bekomme ich es also hin, dass ich ständig ein und die selbe Instanz eines MDI-Childs habe, diese aber nach Belieben anzeigen und verbergen ohne dass beim verborgenen Child etwas sichtbares über bleibt? (Ich brauche auch den Zugriff auf die Kompos in den Children vom Parent-Fenster aus, auch dann wenn die Children nicht sichtbar sind!)

Irgendwie komme ich mit dem MDI-Gedöns nicht klar. Finde nur ich das System leicht komisch? Und die viel wichtigere Frage: Weiss jemand wie ich obiges (möglichst einfach, ich hab mit dem Rest schon mehr als genug zu tun) lösen könnte? :)

Schönen Gruß,
Fabian

bigg 8. Mai 2005 01:56

Re: MDI, aber irgendwie nicht ganz...
 
Liste der Anhänge anzeigen (Anzahl: 1)
hi,


ich habe mal meine demo rausgekramt und überarbeitet.
Demo liegt im Anhang.

für die suche:
mdi, verstecken, anzeigen, multiple document interface

dizzy 8. Mai 2005 03:05

Re: MDI, aber irgendwie nicht ganz...
 
Danke dir schonmal kräftig! In Anbetracht der Uhrzeit werde ich dann eher morgen (bzw. gleich... :)) zum Durchsehen kommen.

Bis dahin!

dizzy 9. Mai 2005 01:10

Re: MDI, aber irgendwie nicht ganz...
 
Sodale! Das Projekt hat mir schon sehr weit geholfen. Danke dir! :thumb:

Jetzt stehen noch 2 Fragen dazu im Raum:

1) Ich erstelle die Children automatisch zu Programmstart, da sie ja immer sie selben sind, und von Anfang an gebraucht werden. Leider werden sie auch sofort alle angezeigt. Wie kann ich sie dazu bringen nicht von Anfang an sichtbar zu sein?
Ein "ShowWindow(self.Handle, sw_Hide);" oder "self.Hide;" bringt im OnCreate der Children leider nüx, und im OnCreate des MainForm gibt es die Children ja noch garnicht, so dass es von dort aus auch nicht geht.

2) Controls die auf dem Parent-Form liegen sind immer die obersten Elemente, also auch über den Children (sehr unschön imho). Wie bekomme ich diese für immer hinter die Children?

Danke schon mal!
Fabian

dizzy 10. Mai 2005 00:41

Re: MDI, aber irgendwie nicht ganz...
 
*push*

:duck:

Ich habe bisher keine Lösung zu beidem gefunden :?

bigg 10. Mai 2005 01:41

Re: MDI, aber irgendwie nicht ganz...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zu 1. Quick and dirty würde ich es so machen, ansonsten über Messages.
Zu 2. keine Ahnung was du meinst. ._____.

dizzy 10. Mai 2005 14:30

Re: MDI, aber irgendwie nicht ganz...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von bigg
Zu 1. Quick and dirty würde ich es so machen, ansonsten über Messages.

:thumb: Quick and dirty reicht völlig aus. Simpel und gut - hab ich wieder zu kompliziert gedacht :)
Zitat:

Zitat von bigg
Zu 2. keine Ahnung was du meinst. ._____.

Hab mal ein Beispiel angehängt. Alle Nachfahren von TWinControl auf dem MDIParent sind "always on top" bezüglich der MDIChildren. Das ist nicht allzu schlimm, aber sollte es eine einfache Lösung dafür geben, so wäre ich da ziemlich interessiert.

Danke Dir nochmals kräftig!
Fabian


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