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

C++Builder Discussion :

Premier plan [FAQ]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 21
    Par défaut Premier plan
    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

  2. #2
    Membre chevronné Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Par défaut
    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 :

    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
    }
    Voila en espérant avoir répondu au sujet.

    A+

    Flo.

  3. #3
    Membre émérite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (GetForegroundWindow() == Handle)
    {
      // Traitement
    }

  4. #4
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 21
    Par défaut
    Merci bcp

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

Discussions similaires

  1. [VB6]Form en premier plan
    Par VeNus2 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 30/04/2004, 12h05
  2. petit problème premier plan, arrière plan
    Par gros bob dans le forum OpenGL
    Réponses: 4
    Dernier message: 19/04/2004, 12h00
  3. Réponses: 2
    Dernier message: 14/03/2004, 22h04
  4. Premier plan sur un dialog
    Par |PaRa-BoL dans le forum MFC
    Réponses: 5
    Dernier message: 04/03/2004, 12h52
  5. forcer une fenetre à etre au premier plan jusqu'a ...
    Par peppena dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 22/12/2003, 16h14

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