DICA SOBRE MEMORIA NO VB6
Observei que meo fechando um form com Unload Me o mesmo não é descarregado da memória.
Inclusive todas as variáveis declaradas no form permanecem em memória.
Portando é necesário que no Form_Unload seja inserido o seguinte código:
Set NomeDoForm = Nothing
não adianta colocar: Set Me = Nothing que não funciona
Abraços
Inclusive todas as variáveis declaradas no form permanecem em memória.
Portando é necesário que no Form_Unload seja inserido o seguinte código:
Set NomeDoForm = Nothing
não adianta colocar: Set Me = Nothing que não funciona
Abraços
PUTZ!!!!!!!!!!!!
GRANDE DICA!!!!!!!!!!!
eu já havia observado isso acompanhando a memoria disponivel a ada vez que eu abria um form... e quando fechava a memoria não era liberada... ou até era, mas depois de MUITO tempo (tipo, fecho os form e continuo no sistema, ai depois de umas 2 horas a memoria começava a crescer devagarzinho)
matou a pau...
Brigadão!!!!
GRANDE DICA!!!!!!!!!!!
eu já havia observado isso acompanhando a memoria disponivel a ada vez que eu abria um form... e quando fechava a memoria não era liberada... ou até era, mas depois de MUITO tempo (tipo, fecho os form e continuo no sistema, ai depois de umas 2 horas a memoria começava a crescer devagarzinho)
matou a pau...
Brigadão!!!!
Valeu !!!
Gostei da dica !!!
Posso estar exagerando, mas eu achava qua a cada vez que abria um form, ficava um pouquinho lerdo, mas agora que vc deu essa dica, os problemas acabaram.
Mas vc tá certo, se não colocar esse código no unload, fica na memória !
Vlw
Gostei da dica !!!
Posso estar exagerando, mas eu achava qua a cada vez que abria um form, ficava um pouquinho lerdo, mas agora que vc deu essa dica, os problemas acabaram.
Mas vc tá certo, se não colocar esse código no unload, fica na memória !
Vlw
Eu geralmente coloco no botão Sair dos meus forms essas duas linhas:
Unload Me
Set NomeDoForm = Nothing
Abraços,
Celso
Unload Me
Set NomeDoForm = Nothing
Abraços,
Celso
Citação:Eu geralmente coloco no botão Sair dos meus forms essas duas linhas:
Unload Me
Set NomeDoForm = Nothing
Esse código pode ser colocado num command ou coisa parecida.
Mas não vai adiantar colocar "Unload Me" no Form_Unload
eh, não msm...rs
ponha somente :
set formtal=nothing
ponha somente :
set formtal=nothing
Citação:Esse código pode ser colocado num command ou coisa parecida.
Mas não vai adiantar colocar "Unload Me" no Form_Unload
eu não entendi o q o FelipeA quis dizer nessa citação ai em cima
eu faço o Seguinte para Fechar os meu Forms
No Command1 eu coloca
Unload me e no Private Sub Form_Unload(Cancel As Integer)
eu coloco
Set NOMEFORM = NOthing isso tá errado ?
Não, está certo Clayton...ele quis dizer que não adiantava nada porque o event Form_Unload já é disparado quando o form é descarregado, então, não há a necessidade de mandar descarregá-lo duas vezes ;)
Somente para complementar as informações fornecidas pelos colegas, aà vai uma função útil para o assunto:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
mata_forms ' desinstancia forms de memória ...
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set MeuForm= Nothing
End Sub
Private Sub mata_forms()
Dim F As Byte
F = Forms.Count
Do While F > 0
Unload Forms(F - 1)
If F = Forms.Count Then Exit Do
F = F - 1
Loop
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
mata_forms ' desinstancia forms de memória ...
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set MeuForm= Nothing
End Sub
Private Sub mata_forms()
Dim F As Byte
F = Forms.Count
Do While F > 0
Unload Forms(F - 1)
If F = Forms.Count Then Exit Do
F = F - 1
Loop
End Sub
[CASPEREARK] > Encontrei uma informacao muito interessante e que me foi util, por isso disponibilizo aqui.
As vezes o programa insiste em fica na memoria, mesmo fechando tudo, dando END, o programa teima em ficar lá e não permite que outra instancia do programa seja aberta.
Se voce tem esse problema vai a dica, aonde praticamente se dá um Ctrl-Alt-Del.
Mas cuidado, em tempo de programacao ele desliga o VB Junto.
PS: Não é melhor fazer logo assim? fecha logo tudo de uma só lapada!!
rsrsr
As vezes o programa insiste em fica na memoria, mesmo fechando tudo, dando END, o programa teima em ficar lá e não permite que outra instancia do programa seja aberta.
Se voce tem esse problema vai a dica, aonde praticamente se dá um Ctrl-Alt-Del.
Private Declare Sub ExitProcess Lib "kernel32" (ByVal uExitCode As Long)
Public Sub Sair()
ExitProcess 1
End SubMas cuidado, em tempo de programacao ele desliga o VB Junto.
PS: Não é melhor fazer logo assim? fecha logo tudo de uma só lapada!!
rsrsr
Tópico encerrado , respostas não são mais permitidas