View Full Version : VB6.0 me.close


Zero_Cool_PT
09-03-2008, 21:26
Boas pessoal. Existe algum comando que nos feche as form's todas? É que tar a criar um botão para cada Form fazer unload é um bocado chato...Obrigado desde já

Ш¡zard·σf·Шαr
09-03-2008, 21:46
EndPara terminar o programa.
Serve?

Zero_Cool_PT
09-03-2008, 22:13
EndPara terminar o programa.
Serve?
Perfeitamente :D
Brigadão

Kayvlim
10-03-2008, 01:34
EndPara terminar o programa.
Serve?
Nunca!!!
Faz os unloads todos. NUNCA uses o "End". É a pior forma de terminar um programa.
Depois explico porquê :x

Ш¡zard·σf·Шαr
10-03-2008, 01:43
lol, apenas dei a solução mais simples e bruta para fazer o que ele pretende. :P

E, num programa simples como o dele, é quase impossível o End dar problemas...

Kayvlim
10-03-2008, 15:19
Eu percebo isso, e em tempos também usei o End. No entanto, é mesmo a pior forma de terminar um programa.
É simples: o Unload destrói todos os objectos da memória, e o End "corta" a execução do programa sem a limpar, como se fosses ao gestor de tarefas e fizesses "Terminar Tarefa".
Além disso, o End tem outro problema: eventos como o QueryUnload, Unload ou Terminate não são chamados.
Se fizeres subclassing no teu programa, é a mistura perfeita para um crash.

Uma boa forma de fazer as coisas é esta:

Option Explicit

Private Sub Command1_Click()
Dim CadaForm As Form

For Each CadaForm In Forms
If Not CadaForm.Name = Me.Name Then
Unload CadaForm
End If
Next

Unload Me
End Sub

Private Sub Form_Load()

Form1.Show
Form2.Show
Form3.Show
Form4.Show

End Sub

(um projecto com 4 forms, e em qualquer um deles, um command1 e este código)