[Delphi] Comment savoir si mon programme est actif ?

Comment savoir si mon programme est actif ? [Delphi] - Delphi/Pascal - Programmation

Marsh Posté le 29-12-2002 à 00:01:24    

Bonjour,  
 
je désire connaître l'état de mon programme s'il est actif (au premier plan) ou inactif (au second plan) ...
 
je sais qu'avec la plupart des objets (memo, etc) il y a les évènements onExit et onEnter mais pour le form ...  
 
une idée ?
 
 
J'ai fait quelque recherche avec "focus" mais rien de 'simple' à la manière de VB ..
 
:jap: :jap: :jap:


Message édité par AZorbas le 29-12-2002 à 00:14:12

---------------
www.astrocosmos.net, le portail belge francophone sur l'astronomie et les Sciences.
Reply

Marsh Posté le 29-12-2002 à 00:01:24   

Reply

Marsh Posté le 29-12-2002 à 09:12:28    

il te suffit de te connecter sur les évenements OnActivate et OnDeactivate de Application
 
 

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnActivate   := AppActivate;
  Application.OnDeactivate := AppDeactivate;
end;
 
procedure TForm1.AppDeactivate(Sender: TObject);
begin
  // ici on quitte l'appli pour basculer sur une autre
end;
 
procedure TForm1.AppActivate(Sender: TObject);
begin
  // coucou on est de retour à la maison
end;

Reply

Marsh Posté le 29-12-2002 à 10:29:51    

Pour tester comme cela en plein milieu si ta fenetre est au premier plan, tu paux aussi utiliser GetForegroundWindow qui renvoit le handle de la fenetre du premier plan.

Code :
  1. if Fenetre.hWnd = GetForegroundWindow then
  2.     // elle est au premier pan
  3. else
  4.     // elle l'est pas
  5. endif


 
PS : c'est bien comme cela le pascal ? :) Ca me fait faire une petite revision. Je me souviens que y'a pas besoin de mettre les parentheses quand y'a pas d'argument a une fonction, qu'est-ce que ca m'a soulé ca (quand tu relis un code et que tu cherche ce que c'est que cette variable :fou:) A moins que je sois a cote de la plaque


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 29-12-2002 à 11:01:46    

c presque comme ça  :D  
 
if Fenetre.Handle = GetForegroundWindow then  
 // premier plan
else
 // elle l'est pas
 
y a pas de endif (fenetre ici est une TForm)
 
mais y a plus simple
 
if Fenetre.active then //
 
 
pffff ne pas reconnaitre les noms de ses variables...spa bo ça  :D

Reply

Marsh Posté le 29-12-2002 à 11:50:47    

Merci les gars !!!!!
 
 :bounce:  :bounce:  :bounce:  
 
 :jap:


---------------
www.astrocosmos.net, le portail belge francophone sur l'astronomie et les Sciences.
Reply

Marsh Posté le 29-12-2002 à 12:25:20    

Citation :

pffff ne pas reconnaitre les noms de ses variables...spa bo ça


 
pas de mes variables ... je parle de se palucher le source d'un autre

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed