+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7
  1. #1
    Membre du Club
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    septembre 2004
    Messages
    153
    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 : 153
    Points : 52
    Points
    52

    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
    153
    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 : 153
    Points : 52
    Points
    52

    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
    153
    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 : 153
    Points : 52
    Points
    52

    Par défaut

    Pour le moment voila ce que j'ai trouvé:

    Code :
    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 :
    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
    153
    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 : 153
    Points : 52
    Points
    52

    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 :
    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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •