Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Application.OnActivate... (https://www.delphipraxis.net/3634-application-onactivate.html)

Ricane 22. Mär 2003 17:11


Application.OnActivate...
 
Moin,

meine Frage ist für die meisten sicherlich sehr einfach, aber ich kriege es leider nicht auf die Reihe...

Ich möchte nur das Event "Application.OnActivate" auslösen, kriege es aber nicht hin ...

Was nun sprach Zeus?


Grüsse,

Ricane

Chewie 22. Mär 2003 17:23

Zeus hat durch das Orakel gesprochen:

Zitat:

Das Ereignis OnActivate wird ausgelöst, wenn eine Anwendung aktiv wird.

property OnActivate: TNotifyEvent;

Beschreibung

Auf Basis von OnActivate können Sie eine Ereignisbehandlungsroutine programmieren, mit der Sie bei der Aktivierung der Anwendung bestimmte Aktionen durchführen können.

Eine Anwendung wird aktiv, wenn sie ausgeführt wird oder der Fokus von einer anderen Windows-Anwendung zu einem beliebigen Fenster der Anwendung wechselt.

Ricane 22. Mär 2003 17:26

Mmhhh.....

soweit war ich ehrlich gesagt auch schon. Ich gucke auch zuerst immer in die Hilfe und wenn da nix gescheites drin steht, wende ich mich ans Forum ...

Ä bisschle konkräta büdde !


Greetz,

Ricane

Salomon 22. Mär 2003 17:30

Form1 auswählen -> Object Inspector -> Events -> ein Doppelklick bei "OnActivate" .
Meinst du das?

Chewie 22. Mär 2003 17:39

Du sagtest, du wolltest dieses Ereignis auslösen. Für mich heißt das, du willst, dass die Ereignisroutine, die du in Application.OnActivate geschrieben hast, ausgelöst wird. Und laut der Hilfe ist das jedesmal der Fall, wenn deine Anwendung wieder den Fokus bekommt.

Christian Seehase 22. Mär 2003 23:55

Moin Chewie,

nicht ganz.
Wenn das Programm den Focus erhält wird das OnActivate des Application Objektes ausgelöst (das des Formulares nur einmal zu Beginn).
Hintergrund des Ganzen ist, dass ein jedes fensterorientiertes Delphiprogramm aus mindestens zwei Fenstern besteht.
Zum einen ein unsichtbares Fenster (das des Application Objektes) und das, diesem untergeordnete, Hauptformular (z.B. Form1).

Soll also nun bei jedem Aktvieren des Programmes etwas passieren, so muss man Application.OnActivate eine entsprechende Routine zuornden, und nicht Form1.OnActivate.

Chewie 23. Mär 2003 13:12

Zitat:

Zitat von Christian Seehase
Soll also nun bei jedem Aktvieren des Programmes etwas passieren, so muss man Application.OnActivate eine entsprechende Routine zuornden, und nicht Form1.OnActivate.

Was verstehst du jetzt genau unter "Aktivieren"? Das Starten des Programmes oder das "Den-Fokus-Bekommen"?
Ich werde nämlich (leider) aus deinem Post nicht allzu schlau.

Daniel B 23. Mär 2003 13:27

Zitat:

Zitat von Chewie
Was verstehst du jetzt genau unter "Aktivieren"? Das Starten des Programmes oder das "Den-Fokus-Bekommen"?
Ich werde nämlich (leider) aus deinem Post nicht allzu schlau.

Beides. Beim Programmstart erhält das Programm ja auch den Fokus.
Du kannst es einfach ausprobieren, schreibe im OnActivate des Formulares einfach mal eine ShowMessage('');, dann wirst Du schon sehen wie oft es kommt. Beim hin und her schalten zwischen programmen, Minimieren, Maximieren, einfach mal damit Spielen.

Grüsse, Daniel :hi:

Chewie 23. Mär 2003 13:29

Eben. Nur verstehe ich dann Christian Seehases Post nicht.

Daniel B 23. Mär 2003 14:05

Jetzt hab ich ein bisschen Schmarrn erzählt.
OnActivate tritt eigentlich nur einmal ein, so ähnlich wie OnCreate. Nur, OnActivate tritt auch noch ein wenn die Anwendung(also TApplication) den Fokus erhält, aber nicht das Formular.

Oder auch anders gesagt:
Kontrolle wird von einem Fenster aus einer anderen Anwendung zu einem Fenster dieser Anwendung übertragen wird.

Grüsse, Daniel :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:36 Uhr.
Seite 1 von 2  1 2      

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