IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

[D2010] Comment détecter la perte de focus d'une application ?


Sujet :

Langage Delphi

  1. #1
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 674
    Points : 7 063
    Points
    7 063
    Par défaut [D2010] Comment détecter la perte de focus d'une application ?
    Comment détecter la perte de focus d'une application ?

    J'ai bien trouvé des solutions pour une fenêtre, mais mon application peut contenir beaucoup de fenêtres. Existe t'il un moyen de détecter ça au niveau de l'application entière ?

    Sinon, j'ai entendu parler de GetForegroundWindow.
    Le problème (si j'ai bien tout compris), c'est que ça implique de connaitre la liste des handle de toutes les fenêtres de mon application, pour vérifier si c'est elle ou pas. Et je ne vois pas où placer mon code (un Timer, c'est peut-être pas génial). L'idéal se serait un évènement prévu pour ça.

    Une idée ?

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    TApplication.OnDeactivate ?
    A ne pas confondre avec TForm.OnDeactivate

    Si le TApplication.OnDeactivate n'a pas l'effet escompté, tu peux tenter dans TApplication.OnIdle car c'est l'occasion de tester une boucle sur Screen.Forms[]\FormCount

    OnIdle c'est justement quand l'appli ne fait rien, pas de message de souris ni de dessin à traiter, donc susceptible que ses fenêtres soient cachées

  3. #3
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 674
    Points : 7 063
    Points
    7 063
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    J'avais déjà essayé, mais j'avais du mal m'y prendre. Cette fois, ça prend forme.
    pour les pistes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Comment tester la perte de focus de son application
    Par Brontozor dans le forum VB.NET
    Réponses: 0
    Dernier message: 02/11/2012, 14h17
  2. Comment détecter l'absence d'activité sur une application ?
    Par ffrancky dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/11/2008, 11h33
  3. Perte de focus d'une application
    Par dus dans le forum Visual C++
    Réponses: 12
    Dernier message: 20/10/2008, 09h08
  4. Réponses: 3
    Dernier message: 16/01/2008, 12h41
  5. Comment détecter la perte de focus d'une fenêtre
    Par Leviathan_72 dans le forum Windows
    Réponses: 5
    Dernier message: 31/12/2005, 00h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo