Précédent   Forum du club des développeurs et IT Pro > C et C++ > Outils pour C & C++ > C++Builder
C++Builder Environnement de développement RAD C++Builder. Avant de poster -> F.A.Q C++Builder, Sources C++Builder
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 19/12/2006, 10h53   #1
franckcl
Nouveau Membre du Club
 
Inscription : septembre 2004
Messages : 120
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 120
Points : 27
Points : 27
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
franckcl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2006, 11h50   #2
kmaniche
Membre Expert
 
Avatar de kmaniche
 
Inscription : janvier 2006
Messages : 1 715
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 715
Points : 1 632
Points : 1 632
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 !
kmaniche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2006, 11h54   #3
franckcl
Nouveau Membre du Club
 
Inscription : septembre 2004
Messages : 120
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 120
Points : 27
Points : 27
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.
franckcl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2006, 12h47   #4
kmaniche
Membre Expert
 
Avatar de kmaniche
 
Inscription : janvier 2006
Messages : 1 715
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 715
Points : 1 632
Points : 1 632
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 !
kmaniche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2006, 14h17   #5
franckcl
Nouveau Membre du Club
 
Inscription : septembre 2004
Messages : 120
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 120
Points : 27
Points : 27
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
franckcl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2006, 15h02   #6
kmaniche
Membre Expert
 
Avatar de kmaniche
 
Inscription : janvier 2006
Messages : 1 715
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 715
Points : 1 632
Points : 1 632
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 !
kmaniche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2006, 15h11   #7
franckcl
Nouveau Membre du Club
 
Inscription : septembre 2004
Messages : 120
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 120
Points : 27
Points : 27
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
franckcl est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h30.


 
 
 
 
Partenaires

Hébergement Web