![]() |
In Komponente: Auf Minimieren der MainForm reagieren
Hallo,
ich habe eine Komponente. In diese Komponente würd ich gerne auf das Minimieren der MainForm reagieren. Wie mach ich das am besten? |
Re: In Komponente: Auf Minimieren der MainForm reagieren
Hi!
In der Theorie fallen mir da 3.5 Wege ein: (Voraussetzung: Du musst dir erstmal das Formular holen, um das es geht [z.B. Application.Mainform, oder alle deine Parents durchgehen]) 1. Ein Timer, der prüft, ob ein Resize stattgefunden hat. 2. Das hooken der Nachrichten, die an das Form gesandt wurden. 3. Das ersetzen des OnResize-Ereignisses durch dein eigenes, welches dann das originale aufruft 3.5. Ich weiß im Moment nicht, ob auch nicht-visuelle Komponenten die Resize-Message bekommen. Wenn ja, dann einfach auf diese reagieren (sofern die Komponente auf dem Formular liegt) |
Re: In Komponente: Auf Minimieren der MainForm reagieren
Hallo,
das wäre mein Ansatz. Ich würde die Loaded Methode meiner Komponente überschreiben und prüfen ob dem Resize-Event des Parents ein Eventhandler zugewiesen wurde. Der Anwender könnte ja dem Resize-Event des Parents im OI ein Ereignis zugewiesen haben. Wenn meine Komponente jetzt das Resize-Event des Parents ersetzt würde der ursrüngliche Eventhandler nicht abgearbeitet werden. Deshalb würde ich den ursrüngliche Eventhandler in einem privaten Feld meiner Komponente speichern. Denn meinen eigenen Code ausführen und anschließend den ursrüngliche Eventhandler aufrufen. |
Re: In Komponente: Auf Minimieren der MainForm reagieren
Zitat:
danke für die Hinweise! Aber wie würde der obere Hinweis in Code-Form ausschauen? - Ich weiss momentan nicht wie ich prüfen kann, ob dem Resize-Event des Parents einem Eventhandler zugewiesen wurde |
Re: In Komponente: Auf Minimieren der MainForm reagieren
Zitat:
Delphi-Quellcode:
Pass aber auf es kann auch sein das ein Event im Nachhinein zugewiesen wird... du könntest auch die WindowProc des Fensters überschreiben und bei entsprechender Nachricht dich benachrichtigen lassen
If Assigned(Parent.OnRisize) then
//zugewiesen else //Nicht zugewiesen Oder du guckst einfach wie TApplicationEvents das macht ;) Greetz Boombuler |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 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