1. #1
    Membre du Club
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    septembre 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : septembre 2004
    Messages : 156
    Points : 54
    Points
    54

    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 Expert
    Avatar de kmaniche
    Inscrit en
    janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 1 717
    Points : 1 829
    Points
    1 829

    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 du Club
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    septembre 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : septembre 2004
    Messages : 156
    Points : 54
    Points
    54

    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 Expert
    Avatar de kmaniche
    Inscrit en
    janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 1 717
    Points : 1 829
    Points
    1 829

    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 du Club
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    septembre 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : septembre 2004
    Messages : 156
    Points : 54
    Points
    54

    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 Expert
    Avatar de kmaniche
    Inscrit en
    janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 1 717
    Points : 1 829
    Points
    1 829

    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 du Club
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    septembre 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : septembre 2004
    Messages : 156
    Points : 54
    Points
    54

    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