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

NeT_SlipKnoT 65 Messages postés samedi 18 novembre 2000Date d'inscription 10 décembre 2005 Dernière intervention - 27 juin 2005 à 17:42 - Dernière réponse : NeT_SlipKnoT 65 Messages postés samedi 18 novembre 2000Date d'inscription 10 décembre 2005 Dernière intervention
- 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

cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 28 juin 2005 à 15:36
+3
Utile
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/
Cette réponse vous a-t-elle aidé ?  
omsylv 69 Messages postés lundi 3 janvier 2005Date d'inscription 15 septembre 2005 Dernière intervention - 27 juin 2005 à 17:47
0
Utile
Salut,

si tu utilises un .close sur l'évênement clic de la croix, essaye un .quit
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 27 juin 2005 à 17:57
0
Utile
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/
cs_Stephane33 630 Messages postés samedi 15 février 2003Date d'inscription 9 octobre 2011 Dernière intervention - 27 juin 2005 à 23:32
0
Utile
Tu peux aussi travailler avec des MDI Child et Parent

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

Juste faites-le
tof008 707 Messages postés jeudi 5 mai 2005Date d'inscription 5 janvier 2010 Dernière intervention - 28 juin 2005 à 09:01
0
Utile
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
cs_Stephane33 630 Messages postés samedi 15 février 2003Date d'inscription 9 octobre 2011 Dernière intervention - 28 juin 2005 à 09:50
0
Utile
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
NeT_SlipKnoT 65 Messages postés samedi 18 novembre 2000Date d'inscription 10 décembre 2005 Dernière intervention - 28 juin 2005 à 11:44
0
Utile
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
omsylv 69 Messages postés lundi 3 janvier 2005Date d'inscription 15 septembre 2005 Dernière intervention - 28 juin 2005 à 12:06
0
Utile
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)
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 28 juin 2005 à 12:07
0
Utile
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/
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 28 juin 2005 à 12:31
0
Utile
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/
omsylv 69 Messages postés lundi 3 janvier 2005Date d'inscription 15 septembre 2005 Dernière intervention - 28 juin 2005 à 13:46
0
Utile
Autant pour moi. Désolé !!
NeT_SlipKnoT 65 Messages postés samedi 18 novembre 2000Date d'inscription 10 décembre 2005 Dernière intervention - 28 juin 2005 à 14:21
0
Utile
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) ...
NeT_SlipKnoT 65 Messages postés samedi 18 novembre 2000Date d'inscription 10 décembre 2005 Dernière intervention - 28 juin 2005 à 15:48
0
Utile
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.