[VB6] Problème avec la croix pour fermer une application [Résolu]

Messages postés
65
Date d'inscription
samedi 18 novembre 2000
Dernière intervention
10 décembre 2005
- 27 juin 2005 à 17:42 - Dernière réponse :
Messages postés
65
Date d'inscription
samedi 18 novembre 2000
Dernière intervention
10 décembre 2005
- 28 juin 2005 à 15:48
Bonjour,

j'ai un problème au niveau de mon programme VB. Mon projet est constitué de plusieurs forms dont 1 qui est le form principal (le menu). A partir du menu, on accède à d'autres forms. J'utilise pour cela dans le code les propriété ".Hide" et ".Show" des forms. Le problème est que si je clique sur la croix en haut à droite d'un form qui a été ouvert à partir du menu, le programme ne s'arrête pas comme avec le code "End", il ferme juste le form courant est le form Menu qui est caché (.Hide) est toujours ouvert mais on ne le voit pas, il faut aller dans le Gestionnaire des taches pour le fermer.

J'aimerais donc savoir comment faire pour que lorsque l'on clique sur la croix de la fenêtre ça ferme mon programme et pas seulement le form courant.

Merci d'avance.
Afficher la suite 

14 réponses

Meilleure réponse
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 28 juin 2005 à 15:36
3
Merci
Je ne t'ai jamais dit d'utiliser l'instruction Load pour afficher les
fenêtres (cette fonction ne permet que de charger la feuille, et non de
l'afficher !).



Donc utilise la méthode Show pour afficher ta feuille, et la fonction Unload pour la fermer tout simplement.

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/

Merci cs_DARKSIDIOUS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Messages postés
69
Date d'inscription
lundi 3 janvier 2005
Dernière intervention
15 septembre 2005
- 27 juin 2005 à 17:47
0
Merci
Salut,

si tu utilises un .close sur l'évênement clic de la croix, essaye un .quit
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 27 juin 2005 à 17:57
0
Merci
et si tu es en VB 6, ce qui a l'air d'être le cas ;), utilise des
Unload(Form) plutôt que des .Hide pour fermer tes feuilles, tu verras,
ca marche tout de suite mieux ;)



En fait, lorsque tu fait un .Hide, ta fenêtre est juste masquée, mais
elle reste en mémoire. Du coup, si tu veux quitter ton prog, tu es
obligé de décharger toutes les feuilles de la mémoire : pas pratique !
(à moins que tu passe par un End, mais là, c'est brutal !).

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
Messages postés
630
Date d'inscription
samedi 15 février 2003
Dernière intervention
9 octobre 2011
- 27 juin 2005 à 23:32
0
Merci
Tu peux aussi travailler avec des MDI Child et Parent

Juste faites-le
Messages postés
630
Date d'inscription
samedi 15 février 2003
Dernière intervention
9 octobre 2011
- 27 juin 2005 à 23:32
0
Merci
Ou travailler avec des fenêtres en mode Modal

Juste faites-le
Messages postés
707
Date d'inscription
jeudi 5 mai 2005
Dernière intervention
5 janvier 2010
- 28 juin 2005 à 09:01
0
Merci
Ouais moi je suis assez partisan des unload, parce que modal et MDI Child, je sais pas trop ce que c'est!!



(Si la réponse vous convient, appuyez sur réponse acceptée...)

Il y a plusieurs facon d'être con ,mais un con choisit toujours la pire
Messages postés
630
Date d'inscription
samedi 15 février 2003
Dernière intervention
9 octobre 2011
- 28 juin 2005 à 09:50
0
Merci
Le mieux c'est une les fenêtres modales

Celle-ci sont par dessus toutes les autres et attendent une action particulière avant de disparaitre.

Sous .Net on a pas ce problème et l'avantage et qu'elle ne sature pas la RAM


Juste faites-le
Messages postés
65
Date d'inscription
samedi 18 novembre 2000
Dernière intervention
10 décembre 2005
- 28 juin 2005 à 11:44
0
Merci
Alors tout d'abord je vous remercie pour toute vos réponses.



Pour commencer,en réponse à Stephane33, je suis débutant donc les MDI
Child et Parent, Modal, c'est comme si c'était du chinois pour moi
quoi...



Pour la réponse de omsylv, je ne sais pas comment configurer
l'événement de la croix dans le code, peux-tu me dire comment faire? Il
faut mettre Private Sub quoi????



Pour la réponse à Darksidious, j'ai essayé de mettre Unload(nom du form) mais ça ne fonctionne pas, "Valeur de propriété incorrect" qu'il me dit en surlignant de jaune la ligne du Unload. Pourrais-tu me dire comment faire exactement STP?



Merci
Messages postés
69
Date d'inscription
lundi 3 janvier 2005
Dernière intervention
15 septembre 2005
- 28 juin 2005 à 12:06
0
Merci
Alors, tu mets ce code sur toutes tes frames



Private Sub NomduForm_Close()

DoCmd.Quit

End Sub



Cependant, c'est un peu brutal et des fois ça génère des erreurs. Le mieux pour toi je pense c'est de mettre



Private Sub NomduForm_Close()

Me.tonformmenu.Close

End Sub

Et là ça ferme uniquement ton menu (sauf si la fermeture de ton menu enclenche d'autres actions)
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 28 juin 2005 à 12:07
0
Merci
Valeur de propriété incorrect ???



essaye avec Unload Form1 pour voir

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 28 juin 2005 à 12:31
0
Merci
Heu... omsylv, on est en VB6, pas en .NET ou VBA... le .close n'existe pas pour les feuilles VB6 ![auteurdetail.aspx?ID=415535 ]

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
Messages postés
69
Date d'inscription
lundi 3 janvier 2005
Dernière intervention
15 septembre 2005
- 28 juin 2005 à 13:46
0
Merci
Autant pour moi. Désolé !!
Messages postés
65
Date d'inscription
samedi 18 novembre 2000
Dernière intervention
10 décembre 2005
- 28 juin 2005 à 14:21
0
Merci
Pour répondre à omsylv, j'ai essayé ce que tu as écrit:



Private Sub NomduForm_Close()
DoCmd.Quit
End Sub



Ca ne fonctionne pas. En faisant une éxécution
pas à pas, je me rend compte que lorsque l'on clique sur la croix, le
programme ne rentre jamais dans l'événement Private Sub NomduForm_Close() .



Pour répondre à DarkSidious, j'ai essayé Unload et Load avec la syntaxe que tu m'as dit. Alors pour le Unload ça fonctionne, le form disparait bien, mais ça ne fonctionne pas pour le Load,
le form en question n'apparait pas... Du coup je n'ai pas de message
d'erreur mais mon programme continuer de fonctionner sans que rien
n'apparaisse à l'écran...



A noter que lorsque l'on tape Load ou Unload il apparait ce qui doit suivre comme syntaxe qui est (object As object) ...
Messages postés
65
Date d'inscription
samedi 18 novembre 2000
Dernière intervention
10 décembre 2005
- 28 juin 2005 à 15:48
0
Merci
Effectivement Dark Sidius, ça marche avec Unload et .Show . Merci beaucoup pour ton aide, ça fait plaisir.



++

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.