AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi In Komponente: Auf Minimieren der MainForm reagieren
Thema durchsuchen
Ansicht
Themen-Optionen

In Komponente: Auf Minimieren der MainForm reagieren

Ein Thema von Helmi · begonnen am 10. Aug 2006 · letzter Beitrag vom 11. Aug 2006
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#1

In Komponente: Auf Minimieren der MainForm reagieren

  Alt 10. Aug 2006, 23:19
Hallo,

ich habe eine Komponente. In diese Komponente würd ich gerne auf das Minimieren der MainForm reagieren.

Wie mach ich das am besten?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: In Komponente: Auf Minimieren der MainForm reagieren

  Alt 11. Aug 2006, 06:16
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)
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#3

Re: In Komponente: Auf Minimieren der MainForm reagieren

  Alt 11. Aug 2006, 08:41
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.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#4

Re: In Komponente: Auf Minimieren der MainForm reagieren

  Alt 11. Aug 2006, 09:01
Zitat von Jens Schumann:
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.
Hallo,

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
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Boombuler
Boombuler

Registriert seit: 14. Mär 2003
Ort: Osnabrück
244 Beiträge
 
Delphi 2009 Professional
 
#5

Re: In Komponente: Auf Minimieren der MainForm reagieren

  Alt 11. Aug 2006, 09:25
Zitat von Helmi:
Ich weiss momentan nicht wie ich prüfen kann, ob dem Resize-Event des Parents einem Eventhandler zugewiesen wurde
Delphi-Quellcode:
If Assigned(Parent.OnRisize) then
  //zugewiesen
else
  //Nicht zugewiesen
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
Oder du guckst einfach wie TApplicationEvents das macht

Greetz
Boombuler
"Look at you, Hacker. A pathetic creature of meat and bone, panting and sweating as you run through my corridors. How can you challenge a perfect, immortal machine?"
SwapIt Highscore:
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:31 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