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

cs_cotmar 71 Messages postés vendredi 13 septembre 2002Date d'inscription 9 mars 2009 Dernière intervention - 5 avril 2006 à 10:57 - Dernière réponse : cs_cotmar 71 Messages postés vendredi 13 septembre 2002Date d'inscription 9 mars 2009 Dernière intervention
- 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
cs_cotmar 71 Messages postés vendredi 13 septembre 2002Date d'inscription 9 mars 2009 Dernière intervention - 5 avril 2006 à 18:14
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

Merci cs_cotmar 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 73 internautes ce mois-ci

jannoman 258 Messages postés jeudi 17 avril 2003Date d'inscription 20 février 2008 Dernière intervention - 5 avril 2006 à 11:00
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.
cs_cotmar 71 Messages postés vendredi 13 septembre 2002Date d'inscription 9 mars 2009 Dernière intervention - 5 avril 2006 à 11:25
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
cs_ketchoupi 14 Messages postés lundi 23 février 2004Date d'inscription 23 novembre 2008 Dernière intervention - 5 avril 2006 à 12:38
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
cs_cotmar 71 Messages postés vendredi 13 septembre 2002Date d'inscription 9 mars 2009 Dernière intervention - 5 avril 2006 à 14:24
0
Merci
Merci je viens de trouver une solution.
A très bientôt.

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

CR
cs_cotmar 71 Messages postés vendredi 13 septembre 2002Date d'inscription 9 mars 2009 Dernière intervention - 22 avril 2006 à 14:44
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.