Clipper On Line • Ver Tópico - Fechar uma janela modal sem passar pela Validação

Fechar uma janela modal sem passar pela Validação

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Fechar uma janela modal sem passar pela Validação

Mensagempor asimoes » 05 Nov 2018 18:23

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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Fechar uma janela modal sem passar pela Validação

Mensagempor Itamar M. Lins Jr. » 06 Nov 2018 15:38

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Fechar uma janela modal sem passar pela Validação

Mensagempor asimoes » 06 Nov 2018 15:47

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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Fechar uma janela modal sem passar pela Validação

Mensagempor asimoes » 06 Nov 2018 17:52

Pessoal,

Contornei dessa forma, validar o GET somente com enter, assim no click no botão sair não valida o get
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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Fechar uma janela modal sem passar pela Validação

Mensagempor asimoes » 06 Nov 2018 17:56

Validando a tecla TAB
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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Fechar uma janela modal sem passar pela Validação

Mensagempor janio » 07 Nov 2018 08:54

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 de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Fechar uma janela modal sem passar pela Validação

Mensagempor asimoes » 07 Nov 2018 13:58

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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Fechar uma janela modal sem passar pela Validação

Mensagempor Itamar M. Lins Jr. » 07 Nov 2018 14:17

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>.
 <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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes




Retornar para HwGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro