Il y a quelque temps j'avais rencontré le problème de mémorisation de
ressource même si la form qui les contenait été unloadée. Une solution
proposée était de libérer les ressources avant la fermeture de la form
Exemple d'une fenêtre FORM1 (boite d'options,....) :
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
On Error Resume Next
Set form1 = Nothing
End Sub
Malheureusement, je rencontre des problèmes à la fermeture de mon programme.
Dans la fenêtre générale, j'ai un bout de code qui permet de ne pas le
quitter si certaines fenêtres ne sont pas fermées
exemple à la fenêtre générale FORM2
Private Sub Form_Unload(Cancel As Integer)
nbform = Forms.Count
For i = 0 To Forms.Count - 1
On Error Resume Next
If Forms(i).Name = "cond" Then Unload Forms(i): nbform = nbform - 1
Next i
If nbform > 2 Then MsgBox "Il faut fermer d'autres fenêtres.": Cancel =
True
End Sub
Après l'utilisation de la fenêtre Form1, il arrive que le code de Form2
m'indique que la fenêtre Form1 est encore présente.
Actuellement, form1 est appelée tout simplement avec les intructions load et
show.
Devrais-je alors les appeller comme ceci : ???
MaFeuille As Form1
Set MaFeuille = New Form1
MaFeuille.Show
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
Christian Hugoud
Déjà tu ne peux pas faire depuis la form elle-même set laform=nothing. Il faut que tu le fasses de l'extérieur de laform.
D'autre part, Unload Forms(i) ne garantit pas que la form en question soit déchargée. Il faudrait la mettre à nothing.
Dans tous les cas, si laform référence un objet extérieur à elle-même dans une de ses variables, elle ne se déchargera pas. Il faut mettre toutes ses variables qui pointent sur des objets à nothing dans le unload.
Hope this helps...
Christian
"TouTi" <gelapplication[NsP]@tiscali.fr> a écrit dans le message de news:
Bonjour
Il y a quelque temps j'avais rencontré le problème de mémorisation de ressource même si la form qui les contenait été unloadée. Une solution proposée était de libérer les ressources avant la fermeture de la form
Exemple d'une fenêtre FORM1 (boite d'options,....) : Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) On Error Resume Next Set form1 = Nothing End Sub
Malheureusement, je rencontre des problèmes à la fermeture de mon programme. Dans la fenêtre générale, j'ai un bout de code qui permet de ne pas le quitter si certaines fenêtres ne sont pas fermées
exemple à la fenêtre générale FORM2 Private Sub Form_Unload(Cancel As Integer) nbform = Forms.Count For i = 0 To Forms.Count - 1 On Error Resume Next If Forms(i).Name = "cond" Then Unload Forms(i): nbform = nbform - 1 Next i If nbform > 2 Then MsgBox "Il faut fermer d'autres fenêtres.": Cancel = True End Sub
Après l'utilisation de la fenêtre Form1, il arrive que le code de Form2 m'indique que la fenêtre Form1 est encore présente.
Actuellement, form1 est appelée tout simplement avec les intructions load et show.
Devrais-je alors les appeller comme ceci : ??? MaFeuille As Form1 Set MaFeuille = New Form1 MaFeuille.Show
Merci et Bon W-E
-- TouTi
Déjà tu ne peux pas faire depuis la form elle-même set laform=nothing. Il
faut que tu le fasses de l'extérieur de laform.
D'autre part, Unload Forms(i) ne garantit pas que la form en question soit
déchargée. Il faudrait la mettre à nothing.
Dans tous les cas, si laform référence un objet extérieur à elle-même dans
une de ses variables, elle ne se déchargera pas. Il faut mettre toutes ses
variables qui pointent sur des objets à nothing dans le unload.
Hope this helps...
Christian
"TouTi" <gelapplication[NsP]@tiscali.fr> a écrit dans le message de news:
uK2tWj8WGHA.1192@TK2MSFTNGP03.phx.gbl...
Bonjour
Il y a quelque temps j'avais rencontré le problème de mémorisation de
ressource même si la form qui les contenait été unloadée. Une solution
proposée était de libérer les ressources avant la fermeture de la form
Exemple d'une fenêtre FORM1 (boite d'options,....) :
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
On Error Resume Next
Set form1 = Nothing
End Sub
Malheureusement, je rencontre des problèmes à la fermeture de mon
programme.
Dans la fenêtre générale, j'ai un bout de code qui permet de ne pas le
quitter si certaines fenêtres ne sont pas fermées
exemple à la fenêtre générale FORM2
Private Sub Form_Unload(Cancel As Integer)
nbform = Forms.Count
For i = 0 To Forms.Count - 1
On Error Resume Next
If Forms(i).Name = "cond" Then Unload Forms(i): nbform = nbform - 1
Next i
If nbform > 2 Then MsgBox "Il faut fermer d'autres fenêtres.": Cancel =
True
End Sub
Après l'utilisation de la fenêtre Form1, il arrive que le code de Form2
m'indique que la fenêtre Form1 est encore présente.
Actuellement, form1 est appelée tout simplement avec les intructions load
et show.
Devrais-je alors les appeller comme ceci : ???
MaFeuille As Form1
Set MaFeuille = New Form1
MaFeuille.Show
Déjà tu ne peux pas faire depuis la form elle-même set laform=nothing. Il faut que tu le fasses de l'extérieur de laform.
D'autre part, Unload Forms(i) ne garantit pas que la form en question soit déchargée. Il faudrait la mettre à nothing.
Dans tous les cas, si laform référence un objet extérieur à elle-même dans une de ses variables, elle ne se déchargera pas. Il faut mettre toutes ses variables qui pointent sur des objets à nothing dans le unload.
Hope this helps...
Christian
"TouTi" <gelapplication[NsP]@tiscali.fr> a écrit dans le message de news:
Bonjour
Il y a quelque temps j'avais rencontré le problème de mémorisation de ressource même si la form qui les contenait été unloadée. Une solution proposée était de libérer les ressources avant la fermeture de la form
Exemple d'une fenêtre FORM1 (boite d'options,....) : Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) On Error Resume Next Set form1 = Nothing End Sub
Malheureusement, je rencontre des problèmes à la fermeture de mon programme. Dans la fenêtre générale, j'ai un bout de code qui permet de ne pas le quitter si certaines fenêtres ne sont pas fermées
exemple à la fenêtre générale FORM2 Private Sub Form_Unload(Cancel As Integer) nbform = Forms.Count For i = 0 To Forms.Count - 1 On Error Resume Next If Forms(i).Name = "cond" Then Unload Forms(i): nbform = nbform - 1 Next i If nbform > 2 Then MsgBox "Il faut fermer d'autres fenêtres.": Cancel = True End Sub
Après l'utilisation de la fenêtre Form1, il arrive que le code de Form2 m'indique que la fenêtre Form1 est encore présente.
Actuellement, form1 est appelée tout simplement avec les intructions load et show.
Devrais-je alors les appeller comme ceci : ??? MaFeuille As Form1 Set MaFeuille = New Form1 MaFeuille.Show
Merci et Bon W-E
-- TouTi
TouTi
> Déjà tu ne peux pas faire depuis la form elle-même set laform=nothing. Il faut que tu le fasses de l'extérieur de laform.
D'autre part, Unload Forms(i) ne garantit pas que la form en question soit déchargée. Il faudrait la mettre à nothing.
Dans tous les cas, si laform référence un objet extérieur à elle-même dans une de ses variables, elle ne se déchargera pas. Il faut mettre toutes ses variables qui pointent sur des objets à nothing dans le unload.
J'ai mis en pratique tes conseils. Je verrais l'impact des modifications lors des essais
Merci
--
TouTi
> Déjà tu ne peux pas faire depuis la form elle-même set laform=nothing. Il
faut que tu le fasses de l'extérieur de laform.
D'autre part, Unload Forms(i) ne garantit pas que la form en question soit
déchargée. Il faudrait la mettre à nothing.
Dans tous les cas, si laform référence un objet extérieur à elle-même dans
une de ses variables, elle ne se déchargera pas. Il faut mettre toutes ses
variables qui pointent sur des objets à nothing dans le unload.
J'ai mis en pratique tes conseils. Je verrais l'impact des modifications
lors des essais
> Déjà tu ne peux pas faire depuis la form elle-même set laform=nothing. Il faut que tu le fasses de l'extérieur de laform.
D'autre part, Unload Forms(i) ne garantit pas que la form en question soit déchargée. Il faudrait la mettre à nothing.
Dans tous les cas, si laform référence un objet extérieur à elle-même dans une de ses variables, elle ne se déchargera pas. Il faut mettre toutes ses variables qui pointent sur des objets à nothing dans le unload.
J'ai mis en pratique tes conseils. Je verrais l'impact des modifications lors des essais