J'ai un programme genre usine à gaz qui ouvre de nombreuses fenêtres.
Certaines de ce fenêtres ont un bouton "Quitter" , avec pour seul code
"End".
Je m'aperçois que après fermeture, mon programme tourne toujours.
Comment faire une fermeture propre et complète, qui libère la mémoire ???
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
X
Bonjour,
Quand on termine le programme, form1 Sub Form_Unload(Cancel As Integer) on error resume next Unload formX Unload formY U... etc... End End Sub
Dans chaque feuille qui se ferme Sub Form_Unload(Cancel As Integer) Unload formOuOnEst End Sub
Sinon, t'es-tu assuré que le programme ne lançait pas d'autre programme (exe, com bat), ce qui serait un autre problème ???
------ Site logiciels http://irolog.free.fr Mail http://irolog.free.fr/ecrire/index.htm Site perso http://irolog.free.fr/joe/index.htm Pincipe d'utilisation des news Groups http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm ------------------------------------------------------------------------------------ "JyM" a écrit dans le message de news: 43f56275$0$1150$
Salut au groupe (Sous VB5).
J'ai un programme genre usine à gaz qui ouvre de nombreuses fenêtres. Certaines de ce fenêtres ont un bouton "Quitter" , avec pour seul code "End". Je m'aperçois que après fermeture, mon programme tourne toujours.
Comment faire une fermeture propre et complète, qui libère la mémoire ???
Merci
Bonjour,
Quand on termine le programme, form1
Sub Form_Unload(Cancel As Integer)
on error resume next
Unload formX
Unload formY
U... etc...
End
End Sub
Dans chaque feuille qui se ferme
Sub Form_Unload(Cancel As Integer)
Unload formOuOnEst
End Sub
Sinon, t'es-tu assuré que le programme ne lançait pas d'autre programme
(exe, com bat), ce qui serait un autre problème ???
------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Pincipe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"JyM" <jym@hello.com> a écrit dans le message de news:
43f56275$0$1150$7a628cd7@news.club-internet.fr...
Salut au groupe
(Sous VB5).
J'ai un programme genre usine à gaz qui ouvre de nombreuses fenêtres.
Certaines de ce fenêtres ont un bouton "Quitter" , avec pour seul code
"End".
Je m'aperçois que après fermeture, mon programme tourne toujours.
Comment faire une fermeture propre et complète, qui libère la mémoire ???
Quand on termine le programme, form1 Sub Form_Unload(Cancel As Integer) on error resume next Unload formX Unload formY U... etc... End End Sub
Dans chaque feuille qui se ferme Sub Form_Unload(Cancel As Integer) Unload formOuOnEst End Sub
Sinon, t'es-tu assuré que le programme ne lançait pas d'autre programme (exe, com bat), ce qui serait un autre problème ???
------ Site logiciels http://irolog.free.fr Mail http://irolog.free.fr/ecrire/index.htm Site perso http://irolog.free.fr/joe/index.htm Pincipe d'utilisation des news Groups http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm ------------------------------------------------------------------------------------ "JyM" a écrit dans le message de news: 43f56275$0$1150$
Salut au groupe (Sous VB5).
J'ai un programme genre usine à gaz qui ouvre de nombreuses fenêtres. Certaines de ce fenêtres ont un bouton "Quitter" , avec pour seul code "End". Je m'aperçois que après fermeture, mon programme tourne toujours.
Comment faire une fermeture propre et complète, qui libère la mémoire ???
Merci
Jean-Marc
"JyM" a écrit dans le message de news:43f56275$0$1150$
Salut au groupe (Sous VB5).
J'ai un programme genre usine à gaz qui ouvre de nombreuses fenêtres. Certaines de ce fenêtres ont un bouton "Quitter" , avec pour seul code "End". Je m'aperçois que après fermeture, mon programme tourne toujours.
Comment faire une fermeture propre et complète, qui libère la mémoire
???
Hello,
en général: Unload me
Il faut aussi bien fermer les connections BDD, les sockets si il y en a, s'assurer qu'on a pas un appel API asynchrone en attente.
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"JyM" <jym@hello.com> a écrit dans le message de
news:43f56275$0$1150$7a628cd7@news.club-internet.fr...
Salut au groupe
(Sous VB5).
J'ai un programme genre usine à gaz qui ouvre de nombreuses fenêtres.
Certaines de ce fenêtres ont un bouton "Quitter" , avec pour seul code
"End".
Je m'aperçois que après fermeture, mon programme tourne toujours.
Comment faire une fermeture propre et complète, qui libère la mémoire
???
Hello,
en général:
Unload me
Il faut aussi bien fermer les connections BDD, les
sockets si il y en a, s'assurer qu'on a pas un
appel API asynchrone en attente.
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
"JyM" a écrit dans le message de news:43f56275$0$1150$
Salut au groupe (Sous VB5).
J'ai un programme genre usine à gaz qui ouvre de nombreuses fenêtres. Certaines de ce fenêtres ont un bouton "Quitter" , avec pour seul code "End". Je m'aperçois que après fermeture, mon programme tourne toujours.
Comment faire une fermeture propre et complète, qui libère la mémoire
???
Hello,
en général: Unload me
Il faut aussi bien fermer les connections BDD, les sockets si il y en a, s'assurer qu'on a pas un appel API asynchrone en attente.
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
X
Heu, précisions à titre personnel que je préfère nommer la feuille "formX" que de mettre "Me", d'autant que ça ne marche que pour la feuille qui a le focus, car "Me" n'est pas assez parlant...
-- Merci beaucoup, au revoir et à bientôt :o) ------ Site logiciels http://irolog.free.fr Mail http://irolog.free.fr/ecrire/index.htm Site perso http://irolog.free.fr/joe/index.htm Principe d'utilisation des news Groups http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm ------------------------------------------------------------------------------------ "JyM" a écrit dans le message de news: 43f56275$0$1150$
Salut au groupe (Sous VB5).
J'ai un programme genre usine à gaz qui ouvre de nombreuses fenêtres. Certaines de ce fenêtres ont un bouton "Quitter" , avec pour seul code "End". Je m'aperçois que après fermeture, mon programme tourne toujours.
Comment faire une fermeture propre et complète, qui libère la mémoire ???
Merci
Heu, précisions à titre personnel que je préfère nommer la feuille "formX"
que de mettre "Me", d'autant que ça ne marche que pour la feuille qui a le
focus, car "Me" n'est pas assez parlant...
--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"JyM" <jym@hello.com> a écrit dans le message de news:
43f56275$0$1150$7a628cd7@news.club-internet.fr...
Salut au groupe
(Sous VB5).
J'ai un programme genre usine à gaz qui ouvre de nombreuses fenêtres.
Certaines de ce fenêtres ont un bouton "Quitter" , avec pour seul code
"End".
Je m'aperçois que après fermeture, mon programme tourne toujours.
Comment faire une fermeture propre et complète, qui libère la mémoire ???
Heu, précisions à titre personnel que je préfère nommer la feuille "formX" que de mettre "Me", d'autant que ça ne marche que pour la feuille qui a le focus, car "Me" n'est pas assez parlant...
-- Merci beaucoup, au revoir et à bientôt :o) ------ Site logiciels http://irolog.free.fr Mail http://irolog.free.fr/ecrire/index.htm Site perso http://irolog.free.fr/joe/index.htm Principe d'utilisation des news Groups http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm ------------------------------------------------------------------------------------ "JyM" a écrit dans le message de news: 43f56275$0$1150$
Salut au groupe (Sous VB5).
J'ai un programme genre usine à gaz qui ouvre de nombreuses fenêtres. Certaines de ce fenêtres ont un bouton "Quitter" , avec pour seul code "End". Je m'aperçois que après fermeture, mon programme tourne toujours.
Comment faire une fermeture propre et complète, qui libère la mémoire ???
Merci
Drizzit
Tout dépend comment fonctionne ton application, mais disons que si tu est "standard", tu devrais avoir une fenêtre principale.
A ce moment là, tu peux faire la chose suivante :
Private Sub Form_Unload(Cancel As Integer)
Dim objForm as Form
For Each objForm in Form If objForm.Name <> Me.Name Then Unload objForm End If Next objForm
' Egalement il faut détruire tes instances d'objet que tu as créer ' bien que pas utile mais au moins c est propre Set MonObjet = Nothing
End Sub
Tout dépend comment fonctionne ton application, mais disons que si tu
est "standard", tu devrais avoir une fenêtre principale.
A ce moment là, tu peux faire la chose suivante :
Private Sub Form_Unload(Cancel As Integer)
Dim objForm as Form
For Each objForm in Form
If objForm.Name <> Me.Name Then
Unload objForm
End If
Next objForm
' Egalement il faut détruire tes instances d'objet que tu as créer
' bien que pas utile mais au moins c est propre
Set MonObjet = Nothing
Tout dépend comment fonctionne ton application, mais disons que si tu est "standard", tu devrais avoir une fenêtre principale.
A ce moment là, tu peux faire la chose suivante :
Private Sub Form_Unload(Cancel As Integer)
Dim objForm as Form
For Each objForm in Form If objForm.Name <> Me.Name Then Unload objForm End If Next objForm
' Egalement il faut détruire tes instances d'objet que tu as créer ' bien que pas utile mais au moins c est propre Set MonObjet = Nothing
End Sub
Drizzit
Utiliser le nom de la fenêtre plutôt que "Me" est parfois dangereux.
Exemple tout bête : - Créer un projet - Ajouter deux fenêtres (Form1, Form2) - Sur la Form1 ajouter un bouton avec comme source ci-dessous Private Sub Command_Click() Dim objForm As Form2 Set objForm = New Form2 objForm.Show End Sub - Sur la Form2 ajouter un bouton avec comme source ci-dessous Private Sub Command_Click() Unload Form2 End Sub
Le résultat : Ta fenêtre Form2 ne se ferme pas....
Mais c'est un choix....
Utiliser le nom de la fenêtre plutôt que "Me" est parfois dangereux.
Exemple tout bête :
- Créer un projet
- Ajouter deux fenêtres (Form1, Form2)
- Sur la Form1 ajouter un bouton avec comme source ci-dessous
Private Sub Command_Click()
Dim objForm As Form2
Set objForm = New Form2
objForm.Show
End Sub
- Sur la Form2 ajouter un bouton avec comme source ci-dessous
Private Sub Command_Click()
Unload Form2
End Sub
Le résultat :
Ta fenêtre Form2 ne se ferme pas....
Utiliser le nom de la fenêtre plutôt que "Me" est parfois dangereux.
Exemple tout bête : - Créer un projet - Ajouter deux fenêtres (Form1, Form2) - Sur la Form1 ajouter un bouton avec comme source ci-dessous Private Sub Command_Click() Dim objForm As Form2 Set objForm = New Form2 objForm.Show End Sub - Sur la Form2 ajouter un bouton avec comme source ci-dessous Private Sub Command_Click() Unload Form2 End Sub
Le résultat : Ta fenêtre Form2 ne se ferme pas....
Mais c'est un choix....
Pascal B.
Salut,
Petite correction (voir le "s" à forms - pour la collection):
For Each objForm in Forms
au lieu de:
For Each objForm in Form
Amicalement Pacal B.
"Drizzit" wrote in message news: Tout dépend comment fonctionne ton application, mais disons que si tu est "standard", tu devrais avoir une fenêtre principale.
A ce moment là, tu peux faire la chose suivante :
Private Sub Form_Unload(Cancel As Integer)
Dim objForm as Form
For Each objForm in Form If objForm.Name <> Me.Name Then Unload objForm End If Next objForm
' Egalement il faut détruire tes instances d'objet que tu as créer ' bien que pas utile mais au moins c est propre Set MonObjet = Nothing
End Sub
Salut,
Petite correction (voir le "s" à forms - pour la collection):
For Each objForm in Forms
au lieu de:
For Each objForm in Form
Amicalement
Pacal B.
"Drizzit" <dilallement@wanadoo.fr> wrote in message news:1140167908.310305.254490@g43g2000cwa.googlegroups.com...
Tout dépend comment fonctionne ton application, mais disons que si tu
est "standard", tu devrais avoir une fenêtre principale.
A ce moment là, tu peux faire la chose suivante :
Private Sub Form_Unload(Cancel As Integer)
Dim objForm as Form
For Each objForm in Form
If objForm.Name <> Me.Name Then
Unload objForm
End If
Next objForm
' Egalement il faut détruire tes instances d'objet que tu as créer
' bien que pas utile mais au moins c est propre
Set MonObjet = Nothing
Petite correction (voir le "s" à forms - pour la collection):
For Each objForm in Forms
au lieu de:
For Each objForm in Form
Amicalement Pacal B.
"Drizzit" wrote in message news: Tout dépend comment fonctionne ton application, mais disons que si tu est "standard", tu devrais avoir une fenêtre principale.
A ce moment là, tu peux faire la chose suivante :
Private Sub Form_Unload(Cancel As Integer)
Dim objForm as Form
For Each objForm in Form If objForm.Name <> Me.Name Then Unload objForm End If Next objForm
' Egalement il faut détruire tes instances d'objet que tu as créer ' bien que pas utile mais au moins c est propre Set MonObjet = Nothing
est-ce que cette procédure ne devrait pas être "récursive", c'est à dire vérifier si dans les fenêtres filles il n'y aurait pas aussi d'autres fenêtres à fermer ?
"Drizzit" a écrit dans le message de news:
Merci pour cette correction... :o)
est-ce que cette procédure ne devrait pas être "récursive", c'est à dire
vérifier si dans les fenêtres filles il n'y aurait pas aussi d'autres
fenêtres à fermer ?
"Drizzit" <dilallement@wanadoo.fr> a écrit dans le message de news:
1140175746.545709.78770@g43g2000cwa.googlegroups.com...
est-ce que cette procédure ne devrait pas être "récursive", c'est à dire vérifier si dans les fenêtres filles il n'y aurait pas aussi d'autres fenêtres à fermer ?
"Drizzit" a écrit dans le message de news:
Merci pour cette correction... :o)
Fred
dans : news: Patrice Henrio disait :
est-ce que cette procédure ne devrait pas être "récursive", c'est à dire vérifier si dans les fenêtres filles il n'y aurait pas aussi d'autres fenêtres à fermer ?
Bonjour Patrice, Il n'est pas nécessaire qu'elle soit récursive car la propriété Forms contient toutes les fenêtres (chargées) de l'application. http://msdn.microsoft.com/library/en-us/vb98/html/vbproFormsProperty.asp
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
dans : news:e8Q6eu9NGHA.1032@TK2MSFTNGP11.phx.gbl
Patrice Henrio disait :
est-ce que cette procédure ne devrait pas être "récursive", c'est à
dire vérifier si dans les fenêtres filles il n'y aurait pas aussi
d'autres fenêtres à fermer ?
Bonjour Patrice,
Il n'est pas nécessaire qu'elle soit récursive car la propriété Forms
contient toutes les fenêtres (chargées) de l'application.
http://msdn.microsoft.com/library/en-us/vb98/html/vbproFormsProperty.asp
est-ce que cette procédure ne devrait pas être "récursive", c'est à dire vérifier si dans les fenêtres filles il n'y aurait pas aussi d'autres fenêtres à fermer ?
Bonjour Patrice, Il n'est pas nécessaire qu'elle soit récursive car la propriété Forms contient toutes les fenêtres (chargées) de l'application. http://msdn.microsoft.com/library/en-us/vb98/html/vbproFormsProperty.asp