Fechar uma janela modal sem passar pela Validação

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 modal sem passar pela Validação

Mensagem por asimoes »

Pessoal,

Tem um campo get que tem um valid {|| ! Empty( ThisForm:oCodigo:VarGet() }

Tem como fechar a janela com ThisForm:Close() sem passar pela validação do campo ?

Isso acontece quando tem uma validação em algum campo e se o usuário quer encerrar a janela pelo X ou pelo botão sair, a validação é executada.
Para sair, o usuário teria que digitar algo no campo get para poder encerrar, tem o pulo do gato ?
►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
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Fechar uma janela modal sem passar pela Validação

Mensagem por Itamar M. Lins Jr. »

Ola!
No ultimo registro eu coloco um PHANTOM get "size 0,0 disable"
E tem como saber do FOCO e a TECLA pressionada.
Na 2.20 o ultimo get não é validado!

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
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 modal sem passar pela Validação

Mensagem por asimoes »

Itamar,

Boa dica é uma saída.
►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 modal sem passar pela Validação

Mensagem por asimoes »

Pessoal,

Contornei dessa forma, validar o GET somente com enter, assim no click no botão sair não valida o get

Código: Selecionar todos

IF Empty( ThisForm:oCodigo:VarGet() ) .AND. hwg_GetKeyState( VK_RETURN ) < 0
   hwg_MsgStop("Código inválido", "Erro")
   lOk := .F.
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)
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 modal sem passar pela Validação

Mensagem por asimoes »

Validando a tecla TAB

Código: Selecionar todos

IF Empty( ThisForm:oCodigo:VarGet() ) .AND. ( hwg_GetKeyState( VK_RETURN ) < 0 .OR. hwg_GetKeyState( VK_TAB ) < 0 )
   hwg_MsgStop("Código inválido", "Erro")
   lOk := .F.
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)
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Fechar uma janela modal sem passar pela Validação

Mensagem por janio »

Bom dia,

Se vc tem uma validação num GET que so eh disparada com ENTER ou TAB, vc tera que ao SALVAR, re-validar tudo novamente.

Imagina o seguinte:
- Get 1 tem uma validação;
- Usuario digita algo não valido;
- Em vez de dar ENTER, ele clica com o mouse no proximo GET;
- a validação não foi disparada e a informação constante esta errada;
- Usuario clica no botão salvar... se vc não validar novamente o Get 1, vc irá gravar uma informação invalida no banco

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
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 modal sem passar pela Validação

Mensagem por asimoes »

janio escreveu:Se vc tem uma validação num GET que so eh disparada com ENTER ou TAB, vc tera que ao SALVAR, re-validar tudo novamente.
Janio nesse caso eu valido no click do botão Salvar no meu caso.
Não deixo gravar se o campo estiver em branco, agora se o usuário clicar no botão Sair eu simplesmente fecho a janela, isso é problema do usuário.
Poderia até não validar nada nos campos e validar somente no click do botão Salvar, isso é gosto.

Resumindo não deixo gravar se todos os campos que são exigidos não podem estar em branco.

Esse artifício do hwg_GetKeyState é só para deixar o usuário fechar a janela sem validar
►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
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Fechar uma janela modal sem passar pela Validação

Mensagem por Itamar M. Lins Jr. »

Ola!
Velha discussão para quem programa em HTML.
Tudo deve ser REAVALIADO na FUNÇÂO que salva os dados, não somente do GET ou IMPUT no caso do HTML.
Tem professores que não acha legal VALIDAR os GETs/IMPUTs ali na hora quando SAI DO FOCO <On lost focus>
A Clausula REQUIRED do HTML que força a pessoa digitar no FORM foi criada agora no HTML 5. Mas ela só é executada quando teclamos <SUBMIT> no FORM.
Todo o FORM com o INPUT e FLAG <required> é avaliado somente quando pressionamos <ENVIAR/GRAVAR/SUBMIT>.

Código: Selecionar todos

 <form action="/action_page.php">
  Username: <input type="text" name="usrname" required>
  <input type="submit">
</form> 
Dessa forma penso ser a melhor, até o momento.
Tem as mascaras que só aceitam Letras/Números... neste caso é uma formatação, mas o "FOCO" não fica preso.
valido no click do botão Salvar no meu caso.
Vejo que está de acordo ai com as propostas de outras linguagens.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder