Fechar uma Janela sem validar

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Fechar uma Janela sem validar

Mensagem por asimoes »

Pessoal,

A janela tem um botão Sair com ThisForm:Close() e nessa janela tem um campo get EditCPF com valid {||ValidCPF()}

Código: Selecionar todos

Function ValidCPF()
Local lOk := .T.
   
   If Empty( ThisForm:EditCPF:VarGet() )
      lOk := .F.
   Endif

Return lOk
Tem como fechar essa janela sem que o campo seja validado ?

To fazendo um teste em uma janela modal e queria que ao fechar a janela esse campo não fosse validado, tem alguma propriedade para passar pelo valid do campo ?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Fechar uma Janela sem validar

Mensagem por asimoes »

Eu já tinha a solução e não me lembrava, to ficando velho

Código: Selecionar todos

#define VK_TAB            0x09
#define VK_RETURN         0x0D

If Empty( Thisform:OEdit1:VarGet() ) .And. ( hwg_GetKeyState( VK_RETURN ) < 0 .Or. hwg_GetKeyState( VK_TAB ) < 0 )
   Thisform:oedit1:Setfocus()
   Return .f.
Else
   Return .t.
Endif   
Lembrando que isso é pra deixar o botão Sair fechar a janela,
Mas se tem o botão gravar tem que validar os campos.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Fechar uma Janela sem validar

Mensagem por asimoes »

Simplificando mais usando hwg_lastkey()

Código: Selecionar todos

If Empty( Thisform:OEdit1:VarGet() ) .And. HWG_LASTKEY() != 1 //( GetKeyState( VK_RETURN ) < 0 .Or. GetKeyState( VK_TAB ) < 0 )
   Msginfo("erro")
   Thisform:oedit1:Setfocus()
   Return .f.
Else
   Return .t.
Endif   
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Responder