Empêcher une fenêtre de s'ouvrir plusieurs fois en VB6 ? [Résolu]

Messages postés
71
Date d'inscription
vendredi 13 septembre 2002
Statut
Membre
Dernière intervention
9 mars 2009
- - Dernière réponse : cs_cotmar
Messages postés
71
Date d'inscription
vendredi 13 septembre 2002
Statut
Membre
Dernière intervention
9 mars 2009
- 22 avril 2006 à 14:44
Bonjour,

Ma question est double en fait. Il s'agit ici de VB6.

La première partie de ma questions est la suivante : à l'ouverture d'un application, je voudrais empêcher que l'utilisateur puisse ouvrir plusieurs fois la même fenêtre à partir du menu.

La seconde partie de ma question concerne la fermetue : je voudrais qu'il ne soit pas possible de fermer l'application si jamais une des fenêtre est encore ouverte.

Par avance je vous remercie.

Marco.

Cotmar
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
71
Date d'inscription
vendredi 13 septembre 2002
Statut
Membre
Dernière intervention
9 mars 2009
3
Merci
Bonjour,

En fait j'ai presque honte de moi. Mais la solution que je viens de trouver est la plus simple qui soit : je fais un Load de ma form. Celà était dû aussi à une mauvaise compréhension de ma part par rapport à la demande initiale du client. Je pense aussi que j'ai peut être cherché quelquechose de trops compliqué au départ. Mea culpa donc.

Sinon, j'ai bien testé ce que vous m'avez donné comme idées et c'est vrai que c'est très intéressant. Je pense que ça va quand même bien me servir pour une prochaine fois. En imaginant par exemple que l'on doive limiter le nombre d'apparitions d'une fenêtre... Par exemple.


La seconde partie du problème m'a été donnée par un collègue de travail :


'Déclaration au niveau global à la fenêtre d'un booléen
Private blnNotFin As Boolean

'Dans les procédures...
Private Sub Form_Unload(Cancel As Integer)
If Forms.Count = 1 Then
Cancel = blnNotFin
If Not blnNotFin Then
'Liste d'actions à faire avant de quitter...
End If
Else
Cancel = True
End If


End Sub


Qu'en pensez vous ?

Cotmar

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 125 internautes nous ont dit merci ce mois-ci

Messages postés
258
Date d'inscription
jeudi 17 avril 2003
Statut
Membre
Dernière intervention
20 février 2008
1
0
Merci
tu te fais une variable globale booléenne par fenetre que tu as
isopenform1 = false initialement
au menu :
if not isopenform1 then
isopenform1 = true
load form1
form1.show
end if

et à form1_queryunload :
isopenform1 = false

idem avec les autres fenetres. place tes variables booléennes globales dans un module

. A+. Thomas.
Messages postés
71
Date d'inscription
vendredi 13 septembre 2002
Statut
Membre
Dernière intervention
9 mars 2009
0
Merci
Bonjour,

Merci, je vais essayer cette solution.
Voici ce que j'avais commencé à faire de mon côté en attendant.

Private Sub CmdGestionDesOperations_Click()
'Option 2
Dim MyGestOpe As frmGestOpe
Set MyGestOpe = New frmGestOpe
If MyGestOpe.Count = 0 Then
MyGestOpe.Show
End If
End Sub

Apparemment le count renvoie le nombre de contrôle contenus dans la fenêtre.

Comment obtenir le nombre d'instances de la fenêtre ?

Cotmar
Messages postés
14
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
23 novembre 2008
0
Merci
Salut,

Pour ton problème tu as 2 solutions :

1.Mettre tes fenêtres en modal ( cad que tu ne peut pas accéder aux autres fenetres temps que n'a pas fermer celle ci)

2. Faire un module avec un compteur
exemple :
dans le moduleFenetre
public compteurForm as integer

a chaque fois que tu ouvre une fenetre tu incremente le compteur de 1 et a chaque fois que tu ferme une fenetre -1

Comme ca tu fait un controle tant que compteurform <>0 tu interdiit le close de ton application

Ketchoupi
Messages postés
71
Date d'inscription
vendredi 13 septembre 2002
Statut
Membre
Dernière intervention
9 mars 2009
0
Merci
Merci je viens de trouver une solution.
A très bientôt.

Cotmar
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
21
0
Merci
Il serait de bon ton de donner cette solution, qu'elle serve à d'autre .. et eventuellement qu'on la commente ...

CR
Messages postés
71
Date d'inscription
vendredi 13 septembre 2002
Statut
Membre
Dernière intervention
9 mars 2009
0
Merci
Bonjour,

Je reviens après pas mal de temps sur ce sujet.

Përsonne n'a trouvé à le commenter ou à faire des observatiuons dessus ?

A bientôt.

Cotmar

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.