Página 1 de 1

Fechar uma Janela sem validar

Enviado: 17 Abr 2019 16:48
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 ?

Fechar uma Janela sem validar

Enviado: 18 Abr 2019 17:43
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.

Fechar uma Janela sem validar

Enviado: 18 Abr 2019 18:34
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