![]() |
MDI: MDIForm benachrichtigen, wenn MDIChild geschlossen wird
Hi,
Habe eine MDI-Anwendung. Ich möchte Programmcode im MdiMainForm ausführen, wenn: 1) ein MdiChild erzeugt wird. 2) ein MdiChild geschlossen wird. 3) ein anderes MdiChild den Focus erhält. Ich könnte zwar in jedem MDI-Child das ereignis OnActivate bzw. OnDeaktivate verwenden, aber dann müsste ich ich ca. 15 verschiedenen Forms diese Proceduren programmieren. Nicht, daß ich das nicht könnte, aber ich halte es für einen besseren Programmierstil, wenn dies an einer Stelle im MainForm durchgeführt wird, als an 15 verschiedenen stellen. Weiterhin müsste ich, wenn später mal neue MDI-Fenster hinzukommen, immer daran denken, daß auch OnActivate bzw. OnDeaktivate verwendet wird. Eleganter wäre es, wenn ich im MDIMainForm eine Standard-Windows-Message abfragen könnte, die gesendet wird, wenn sich der Status der MDI-Cilds ändert. Habe aber leider nichts gefunden. Vieleicht hat ja jemand eine Idee. Gerd |
Re: MDI: MDIForm benachrichtigen, wenn MDIChild geschlossen
Moin!
Erstmal Herzlich Willkommen bei Delphi-Praxis.net! Ich habe eine Idee: Nutze OOP. Wie wärs denn, wenn du dir eine Form anlegst die die Activate, Deactivate, Constructor und Destructor überschreibt und entsprechend an das Hauptformular eine Botschaft sendet? Deine MDI Childs die du so ja schon hast, leitest du dann einfach von diesem Form ab und schon machen alle MDI Childs das wie gewollt ohne Code in den entsprechenden Childs. MfG Muetze1 |
Re: MDI: MDIForm benachrichtigen, wenn MDIChild geschlossen
Zitat:
Oh Mann, da hätte ich ja mal früher drauf kommen können. Zumal ich ein grosser Fan von OOP bin. Manchmal sieht man den Wald vor lauter Bäumen nicht. Danke Gerd |
Re: MDI: MDIForm benachrichtigen, wenn MDIChild geschlossen
Und mit ein bischen suchen, findet man das:
![]() :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz