cs_cotmar
Messages postés71Date d'inscriptionvendredi 13 septembre 2002StatutMembreDernière intervention 9 mars 2009
-
5 avril 2006 à 10:57
cs_cotmar
Messages postés71Date d'inscriptionvendredi 13 septembre 2002StatutMembreDerniè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
A voir également:
Empêcher une fenêtre de s'ouvrir plusieurs fois en VB6 ?
cs_cotmar
Messages postés71Date d'inscriptionvendredi 13 septembre 2002StatutMembreDernière intervention 9 mars 2009 5 avril 2006 à 18:14
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
jannoman
Messages postés256Date d'inscriptionjeudi 17 avril 2003StatutMembreDernière intervention20 février 20081 5 avril 2006 à 11:00
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
cs_cotmar
Messages postés71Date d'inscriptionvendredi 13 septembre 2002StatutMembreDernière intervention 9 mars 2009 5 avril 2006 à 11:25
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 ?