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 :

Comment savoir si une fenetre modale est ouverte


Sujet :

C++Builder

  1. #1
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut Comment savoir si une fenetre modale est ouverte
    Bonjour,

    Mon application est du style MDI.
    J'ai une tache de fond qui tourne en permanence et dans cette tache j'aurais besoin de savoir si une fenetre modale est ouverte (et éventuellement connaitre sont titre)

    Merci à qui me dépannera.

    Franck

  2. #2
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    Citation Envoyé par franckcl
    Bonjour,

    Mon application est du style MDI.
    J'ai une tache de fond qui tourne en permanence et dans cette tache j'aurais besoin de savoir si une fenetre modale est ouverte (et éventuellement connaitre sont titre)

    Merci à qui me dépannera.

    Franck
    De quelle fenêtre du parle, une de tes MDICHild.

    Sinon, pourquoi ne déclarer une variable, tu met cette variable à true quand tu vas afficher cette fenêtre, et à false quand elle se ferme.
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

  3. #3
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut
    Je parle de fenetres de dialogue comme des MessageBox, je ne peux donc pas utiliser de variable, et je n'ai pas de control sur ces boites de dialogue qui peuvent s'ouvrir dans l'application à tout moment.

  4. #4
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    Citation Envoyé par franckcl
    Je parle de fenetres de dialogue comme des MessageBox, je ne peux donc pas utiliser de variable, et je n'ai pas de control sur ces boites de dialogue qui peuvent s'ouvrir dans l'application à tout moment.
    Essaye de voir coté Form -> Activate . une idée
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

  5. #5
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut
    Pour le moment voila ce que j'ai trouvé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    int i;
    bool DialogOpen;
     
    DialogOpen=false;
     
    for (i=0;i<Screen->FormCount;i++) 
    {
      if (Screen->Forms[i]->Name=="") DialogOpen=true;
    }
    Voila, la variable DialogOpen sera true lorsqu'un MessageBox s'ouvrira.

    Franck

  6. #6
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    Citation Envoyé par franckcl
    Pour le moment voila ce que j'ai trouvé:

    int i;
    bool DialogOpen;

    DialogOpen=false;

    for (i=0;i<Screen->FormCount;i++)
    {
    if (Screen->Forms[i]->Name=="") DialogOpen=true;
    }

    Voila, la variable DialogOpen sera true lorsqu'un MessageBox s'ouvrira.

    Franck
    aulieu d'utiliser Forms[i] -> Name, pourquoi n'utilise tu pas Forms[i] -> ClassNameIs("Nom de la classe") ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      int i;
      bool DialogOpen;
     
      DialogOpen=false;
     
      for (i=0;i<Screen->FormCount;i++) 
        if(Screen->Forms[i] -> ClassNameIs("TMessageDlg") 
           DialogOpen=true;
    N'oublis pas les balises code
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

  7. #7
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut
    Citation Envoyé par kmaniche
    aulieu d'utiliser Forms[i] -> Name, pourquoi n'utilise tu pas Forms[i] -> ClassNameIs("Nom de la classe") ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      int i;
      bool DialogOpen;
     
      DialogOpen=false;
     
      for (i=0;i<Screen->FormCount;i++) 
        if(Screen->Forms[i] -> ClassNameIs("TMessageDlg") 
           DialogOpen=true;
    N'oublis pas les balises code
    Ta solution est bonne aussi.
    Pour les balises c'est modifié.
    Merci

Discussions similaires

  1. [PPT-2003] VBA (PowerPoint) : Comment savoir si une forme libre est fermée ou ouverte ?
    Par thyduq dans le forum VBA PowerPoint
    Réponses: 2
    Dernier message: 20/03/2012, 08h42
  2. comment savoir si une feuille excel est ouverte?
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/12/2008, 10h54
  3. [Swing] comment savoir si une fenetre est ouverte ?
    Par uraxyd dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 31/12/2005, 11h55
  4. comment savoir si une fenetre est agrandi ou pas ?
    Par EssaiEncore dans le forum Langage
    Réponses: 3
    Dernier message: 07/11/2005, 11h42
  5. Réponses: 4
    Dernier message: 10/09/2002, 17h09

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