ARRÊTER PROPREMENT SON PROGRAMME VB

Technics_addict - 19 mars 2001 à 20:06
cs_ezus Messages postés 6 Date d'inscription lundi 30 mars 2009 Statut Membre Dernière intervention 26 mai 2011 - 29 avril 2009 à 11:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/110-arreter-proprement-son-programme-vb

cs_ezus Messages postés 6 Date d'inscription lundi 30 mars 2009 Statut Membre Dernière intervention 26 mai 2011
29 avril 2009 à 11:51
Oui justement, je voulais réellement le fermer, au lieu de le cacher ^^
(j'ai commencé le VB y'a pas longtemps ^^')
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 avril 2009 à 10:53
Hide Me ?

euh, ba ça cache juste, ça, ca ferme pas
cs_ezus Messages postés 6 Date d'inscription lundi 30 mars 2009 Statut Membre Dernière intervention 26 mai 2011
29 avril 2009 à 10:49
Merci !
je cherchais justement comment quitter une Form complètement (autrement qu'avec un Hide Me) sans fermer le programme :p
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 mars 2008 à 09:42
si un test d'equivalence a faire entre deux références, utiliser Is :

For Each myForm In Forms

If myMainForm Is myForm Then Unload myForm

Next myForm
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 mars 2008 à 09:41
c'est quoi ce jeu que vous faites avec Xor ?

A part un Unload Me....
a la rigueur, une procédure qui permettrait de décharger toutes les Forms, ca, c'est utile, mais une en particulier, l'instruction Unload est là.

le tout est de faire les choses convenablement...

couper les timers, stopper les boucles, ne pas recharger la Form en masqué (ca va vite, suffit de faire référence à l'un de ses controles ; ca charge la feuille avec les propriétés par défault, mais en masqué...)
Sitemps Messages postés 1 Date d'inscription mardi 5 décembre 2000 Statut Membre Dernière intervention 9 mars 2008
9 mars 2008 à 22:30
Merci pour ce code : j ai pu fermer proprement mon appli ,
mais j ai interverti un peu les mots pour que cela fonctionne
If myMainForm.hWnd Xor myForm.hWnd Then Unload myForm : Set myForm= nothing
soldier8514 Messages postés 295 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 24 janvier 2014 1
30 avril 2006 à 15:34
pierrele << c 1 approche interressante / on peut reajoutter : Set myForm= nothing


Sub QuitterMonProgVB(myMainForm As Form)

Dim myForm As VB.Form

' decharge les fenetres filles
For Each myForm In Forms

If myMainForm.hWnd Xor myForm.hWnd Then Set myForm= nothing:Unload myForm

Next myForm

' decharge la fenetre principale
Unload myMainForm
End

End Sub
pierrele Messages postés 7 Date d'inscription mardi 10 décembre 2002 Statut Membre Dernière intervention 26 juillet 2005
4 avril 2003 à 18:38
oui ok mais je ne critique rien man! (1-j'ai dis que c'etait jolie)
juste une parenthense pour les utilisateurs de vb6 (2-j'ai bien dis seulement depuis la runtime vb6) pire dire qu'un End suffisait
mais il vas de soit qu'utiliser le tableau de Form filles c'est plus dans les regles de l'art, et cela en inspirera certains.
moi le premier, et je me permet même de donner un coup de frais à ta boucle :-))))


Sub QuitterMonProgVB(myMainForm As Form)

Dim myForm As VB.Form

' decharge les fenetres filles
For Each myForm In Forms

If myMainForm.hWnd Xor myForm.hWnd Then Unload myForm

Next myForm

' decharge la fenetre principale
Unload myMainForm
End

End Sub
blq Messages postés 97 Date d'inscription vendredi 22 octobre 1999 Statut Membre Dernière intervention 13 juin 2016 1
4 avril 2003 à 17:13
Pour ceux qui "jugent" un code, pour juger quelquechose, voici ma réponse: J'ai mis ce code en ligne en 1999 (nous sommes en 2003...), à cette époque VB (sans doute pas la version 6) ne déchargeait pas correctement les ressources. Depuis M$ a certainement fait des progrés dans la livraison des ServicePack
Ensuite, vous pouvez être amené à executer des instructions lors de l'appel Unload (sauvegarde automatique de préférences par exemple) avant de fermer la fenêtre principale (mode MDI par exemple). Ce code peut éventuellement inspiré d'autres developpements.
Regardez cette modeste contribution comme un moyen une source permettant de proposer une amélioration ou de partager un autre code !
pierrele Messages postés 7 Date d'inscription mardi 10 décembre 2002 Statut Membre Dernière intervention 26 juillet 2005
4 avril 2003 à 16:58
sympa cette boucle, mais il me semble bien que dans la runtime de vb6 l'instruction End se charge bien de la desalocation propre des ressources gdi,instances com ou autres handle ouverts par le processus :-)
cs_SysteM Messages postés 73 Date d'inscription samedi 27 avril 2002 Statut Membre Dernière intervention 14 juillet 2005
10 juin 2002 à 03:28
acidtoxik Unload Me décharge seulement la form d'ou il est appelé... non ?

et oui je suis un novice !
acidtoxik Messages postés 28 Date d'inscription dimanche 12 mai 2002 Statut Membre Dernière intervention 2 janvier 2008
12 mai 2002 à 17:23
vous êtes dses novices ou koi ???? les deux lignes de code suivantes suffisent :
Unload Me
end

et g des preuves
Pour arreter proprement un programme, c'est à dire vider la mémoire qui à été alouée, il faut mettre (exemple):

Set Form1 = nothing
unload Form1
Kan tu kite 1 prog VB, otomatikemen, il ferme toutes les fenêtres du prog..... En gro, sa ser à rien, à par alourdir le prog....
Réponse pour Technics_addict . End permet simplement d'arrêter le programme, mais peut ne pas libérer les ressources systèmes utilisées par le programme (d'autres fenêtre ouverte pas exemple).
moi je met toujours
unload Me
end

ca ne suffit pas ??? mais ce code est suppert intéressant si par exemple on travail avec une MDI form et avec plusieurs fenêtre
c cool ton code
@+
koub
je trouve que ce prg est interessant car c different de l'instruction END qui met fin a tout le prog tandisque cette inst met fin a une fenetre particuliere qui peut rester en memoire
Technics_addict
19 mars 2001 à 20:06
Quel est exactement la différence avec la commande "End"? (Ca peut sembler bête mais je suis un débutant...)
Rejoignez-nous