QUERY_UNLOAD

EPISCOPAL 15/02/2010 23:23:40
#334457
boa noite:

estou com um [Ô]pequeno[Ô] problema

eu adicionei no FormChild >>> um evento Form_QueryUnload >>> um cancel = true etc ........

só que qdo eu tento fechar o MDIform pelo clicar do [Ô]X[Ô] do form ... depois que eu coloco Cancel = true no childform ..... o MDIform nao fecha mais ......... como q faz para reverter isso ..... ?????



o que eu faço para o MDIForm fechar, via o [Ô]X[Ô] do form ????
ROBIU 16/02/2010 09:50:52
#334472
Não endendi a lógica desse codigo. Deveria explicar melhor.
O end fecha tudo na marra. Da forma que está fazendo, coloque no QueryUnload do MDIForm:

Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
End
End Sub


Se o que pretende é evitar que o form filho seja fechado pelo x, segue outra opção em anexo
DANIKULL 16/02/2010 10:55:52
#334483
Resposta escolhida
WOLFFIRE, bom dia.

Este evento do Visual Basic é bem interessante e o funcionamento dele é simples:

Quando você monta uma aplicação que possui uma lógica de execução que não pode ser quebrada até a sua finalização a menos que seja cancelada, você seta o QueryUnload para True, isto impede que sua aplicação seja fechada de forma inesperada e não tratada.
Para vocêw conseguir usa-la você dever fazer da seguinte forma:
Va no Form1e dclare uma variável do tipo boleana:

Option Explicit

Dim UnLoadForm As Boolean


Agora no evento Form_Activate defina ela com valor igual a True:

Private Sub Form_Activate()

UnLoadForm = True

End Sub


No evento Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) coloique Cancel = UnLoadForm

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

Cancel = UnLoadForm

End Sub


e por último adicione um botão no Fom e no evento Command1_Click coloque UnLoadFom = False:

Private Sub Command1_Click()

UnLoadForm = False

End Sub


Agora faça o teste, rode o projeto, abra o Form1 e tente fecha-lo clicando no [Ô]X[Ô], se não conseguir, clique no botão adicionado e em seguida clique no [Ô]X[Ô] do Form1 ou até mesmo do MidChild.

Ok.

Dúvidas poste novamente.
EPISCOPAL 16/02/2010 11:02:16
#334485
Agora consegui ......... RSRS


If UnloadMode = 0 And Visualizar = True Then
Cancel = True
Else
Cancel = False
End If


CODIGO EM ANEXO ........
EPISCOPAL 16/02/2010 11:05:22
#334486
DANIKULL ......... JA TINHA RESOLVIDO O PROBLEMA

RSRSRS


VALEU PELO CODIGOOOO ............. E BEM PARECIDO COM A SOLUÇÃO QUE EU ACHEIIIIII

VALEUUUU
Tópico encerrado , respostas não são mais permitidas