Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi OnShow, OnActivate wird nicht ausgeführt, wenn Programm schon mal geladen wurde (https://www.delphipraxis.net/176703-onshow-onactivate-wird-nicht-ausgefuehrt-wenn-programm-schon-mal-geladen-wurde.html)

Helmi 21. Sep 2013 13:31

OnShow, OnActivate wird nicht ausgeführt, wenn Programm schon mal geladen wurde
 
Hallo,

ich habe ein verzwicktes Problem.

Ich nutze als Datei-Manager FreeCommander, in der Arbeit, als auch zu Hause.

Ich habe mir ein Programm geschrieben, dass aus dem FreeCommander über einen sog. "Programmfavoriten" geladen
wird. Dabei wird der aktuelle Pfad und die aktuelle Datei mit übergeben.
Das funktioniert alles tadellos.

Ist nun mein Programm nicht nicht geladen und es wird über FreeCommander gestartet (mittels Klick auf das Icon
im Commander) so öffnet es sich und es wird auch der Pfad etc. übergeben.

Klicke ich aber noch einmal auf das Icon im Commander, obwohl mein Programm schon geöffnet ist, so kommt mein
Programm in den Vordergrund, aber ich bekomme das in meinem Programm nicht mit.
Weder OnShow, noch OnActivate werden ausgelöst.

Wie kann ich mitbekommen, wenn das Programm nochmals "gestartet" wird, bzw. anscheinend in den Vordergrund
gebracht wird?

Volker Z. 21. Sep 2013 13:48

AW: OnShow, OnActivate wird nicht ausgeführt, wenn Programm schon mal geladen wurde
 
Hallo,

steht bei Dir im Code irgendwie so etwas?
Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
begin
// Dein Aktivierungscode
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnRestore := FormActivate
end;

Gruß

Helmi 21. Sep 2013 13:51

AW: OnShow, OnActivate wird nicht ausgeführt, wenn Programm schon mal geladen wurde
 
nein - sowas steht bei mir ned

würde auch nicht funtionieren
hab´s gerade mit ApplicationEvents ausprobiert.

Volker Z. 21. Sep 2013 14:10

AW: OnShow, OnActivate wird nicht ausgeführt, wenn Programm schon mal geladen wurde
 
Hallo,

sorry mein Fehler. Es ist nicht OnRestore, es müsste
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnActivate := FormActivate
end;
sein.

Gruß

Helmi 21. Sep 2013 14:16

AW: OnShow, OnActivate wird nicht ausgeführt, wenn Programm schon mal geladen wurde
 
hab ich auch ausprobiert, über ApplicationEvents (sorry, hab´s vergessen zu erwähnen)

das funktioniert, Danke!

Wollte zuerst schreiben, dass es nicht funktioniert, aber es wird ausgelöst, nur die
Param´s werden ned aktualisiert..

Volker Z. 21. Sep 2013 23:39

AW: OnShow, OnActivate wird nicht ausgeführt, wenn Programm schon mal geladen wurde
 
Hallo,

Zitat:

nur die Param´s werden ned aktualisiert [...]
jetz sog no welche des nocha san, nocha käma do vielleicht no wos macha

Gruß

Helmi 22. Sep 2013 08:33

AW: OnShow, OnActivate wird nicht ausgeführt, wenn Programm schon mal geladen wurde
 
woast, i moan "ParamCount" und "ParamStr"
die wer´n ned neu gschrie´m

[Übersetzung für nicht Bayern]
weisst, ich mein "ParamCount" und "ParamStr"
die werden nicht neu beschrieben

jaenicke 22. Sep 2013 08:46

AW: OnShow, OnActivate wird nicht ausgeführt, wenn Programm schon mal geladen wurde
 
Zitat:

Zitat von Helmi (Beitrag 1229370)
Wollte zuerst schreiben, dass es nicht funktioniert, aber es wird ausgelöst, nur die
Param´s werden ned aktualisiert..

Können sie auch gar nicht, denn wenn das so passiert, bedeutet das, dass der FreeCommander einfach nach dem Fenster sucht und es nach vorne schiebt. Von den Parametern aus deinem FreeCommander kann dein Programm ja gar nichts wissen.

Du kannst nur mal schauen, ob die Parameter vom FreeCommander vielleicht z.B. als Windows Message verschickt werden...

Helmi 22. Sep 2013 08:57

AW: OnShow, OnActivate wird nicht ausgeführt, wenn Programm schon mal geladen wurde
 
Zitat:

Zitat von jaenicke (Beitrag 1229427)
Zitat:

Zitat von Helmi (Beitrag 1229370)
Wollte zuerst schreiben, dass es nicht funktioniert, aber es wird ausgelöst, nur die
Param´s werden ned aktualisiert..

Können sie auch gar nicht, denn wenn das so passiert, bedeutet das, dass der FreeCommander einfach nach dem Fenster sucht und es nach vorne schiebt. Von den Parametern aus deinem FreeCommander kann dein Programm ja gar nichts wissen.

Das dacht ich mir auch! - die Parameter werden ja zum Laden mitgegeben - und nicht beim Anzeigen

Zitat:

Zitat von jaenicke (Beitrag 1229427)
Du kannst nur mal schauen, ob die Parameter vom FreeCommander vielleicht z.B. als Windows Message verschickt werden...

Gibt's da "fertige" Messages, für so etwas?

jaenicke 22. Sep 2013 09:52

AW: OnShow, OnActivate wird nicht ausgeführt, wenn Programm schon mal geladen wurde
 
Zitat:

Zitat von Helmi (Beitrag 1229430)
Gibt's da "fertige" Messages, für so etwas?

Nein, wenn, dann nur etwas Eigenes.


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