Bonjour
J'aimerais faire un programme qui effectue un traitement seulement quand la fiche est au premier plan.
Donc j'aimerais savoir car je n'ai pas trouver si il existe une telle méthode.J'ai essayer Focused() mais ca ne marche pas
MErci d'avance
Bonjour
J'aimerais faire un programme qui effectue un traitement seulement quand la fiche est au premier plan.
Donc j'aimerais savoir car je n'ai pas trouver si il existe une telle méthode.J'ai essayer Focused() mais ca ne marche pas
MErci d'avance
Salut,
je n'ai pas Borland sous la main, mais il me semble qu'il existe une méthode activate dans la classe TForm et son correspondant desactivate.
Bon ben si c'est le cas, tu déclares une variable de classe booléenne fiche_active. Que tu mets a true dans la méthode Activate et à false dans la méthode Desactivate.
Et dans la fonction tu conditionnes la réalisation de ton traitement à cette variable. Si c'est un traitement en continu du style un while que tu voudrais interrompre lorsque la fiche n'a pas la focus tu peux faire comme ça :
Voila en espérant avoir répondu au sujet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 // traitement à l'infini par exemple while(true) { // si la fiche n'a pas la focus while(!fiche_active) { // tu dors sleep(100); // et tu laisses la file des messages se vider Application->ProcessMessages(); } // ... ton traitement }
A+
Flo.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if (GetForegroundWindow() == Handle) { // Traitement }
Merci bcp
Partager