Fermer correcte l'application avec la croix

Résolu
nakano78 Messages postés 5 Date d'inscription mardi 16 décembre 2003 Statut Membre Dernière intervention 25 septembre 2004 - 14 sept. 2004 à 15:18
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 12 août 2005 à 11:44
une question simple mais que je ne sais pas faire...

Lorsque je quitte mon application par la croix.... le processus reste... donc ma question est simple comment faire pour quitter mon application correctement par la croix ??

merci d'avance

cordialement

7 réponses

Ze_Dam Messages postés 340 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 7 juillet 2005
14 sept. 2004 à 20:28
bon quand on fait, comme NicoSoftt le dit,

Private Sub Form_Unload(Cancel As Integer)
     End
End Sub

et bien ca va complètement stopper le programme, que ce dernier soit fermé par la croix ou par déchargement parovoqué par un autre programme (fermeture de Windows par exemple)

Si tu veux différencier la déchargement par la croix du déchargement par un autre programme, tu utiliseras

Private Sub QueryUnload(Cancel As Integer, UnloadMode As Integer)

If UnloadMode = 0 Then 'si c'est la croix,  (0 pour la croix, 1 pour les déchargement par autre programme
     End 'ben on ferme
Else 'si on a pas appuyé sur la croix, 
     Cancel = 1 'on stoppe le déchargement
End If


bon on peut bien sûr écrire tout sur un ligne mais j'avais besion de place pour les commentaires. J'espère que ca éclaire bien ta lanterne, Nakano78.

@+
3
cs_Esquisse Messages postés 77 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 20 juillet 2005
14 sept. 2004 à 15:44
Ca veux dire que ton Application a encore des form chargée (fait un unload à chaque fois que tu en ferme une.

Sinon sur l'evt Form_Unload force cancel = 0 et si ca fonctionne toujours pas mets End (Après compilation ca fait planter l'application de mettre un End sur le form_unload alors test bien sur ton exe compilé).
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
14 sept. 2004 à 15:48
Pour forcer la fermeture de toutes les forms :
Dim F as Form
For each F in Forms
If f.Name <> me.Name then unload f
Next

Place ce code dans l'evt query_unload de ta form principale.
Si tu as des forms secondaire qui sont toujorus en memoire, cela va les décharger.

Christophe R.
0
nakano78 Messages postés 5 Date d'inscription mardi 16 décembre 2003 Statut Membre Dernière intervention 25 septembre 2004
14 sept. 2004 à 18:07
cela ne fonctionne pas

Pourriez vous me dire le nom de la fonction ou la procedure qui correspond a la croix pour fermer une application...

Ou le nom dans vb qui correspond a la croix...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NicoSoftt Messages postés 106 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 28 octobre 2005
14 sept. 2004 à 18:13
Salut nakano78

Pour fermer une forme c'est en VB

Unload NomForm
ou
Unload Me (si t'est dans la form)

Pour arreter tous les processus

il faut ajouter End à la fin de Form_Unload(Cancel As Integer)

J'esper que c'est ca que tu cherches

N$
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
14 sept. 2004 à 22:28
nakano78 < Qu'est-ce qui ne fonctionne aps dasn le code que je t'ai donné ? un msg d'erreur ? sur quel ligne ? Quel résultat ?

Nicosoftt < Y a pas plus "bourrin" (excuses-moi pour le terme) que de mettre un "End" pour finir un programme en VB !! Et de plus c'est parfois d'une inéfficacité terrible : Le roi de la fuite mémoire en VB c'est ........ "END" ! Pour une isntruction qui est censé tout fermé, c'est un comble non ! Il vaut bien mieux prendre soin de tout fermer par soi-même plutôt que d'utiliser ce END de M . . . E

Christophe R.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
12 août 2005 à 11:44
crenaud76,

Tout fermer par soi même, ça veut dire juste les forms ?

Il faut décharger les dll aussi ?

(set ... = nothing)
0
Rejoignez-nous