Clipper On Line • Ver Tópico - Textbox com Validação

Textbox com Validação

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Textbox com Validação

Mensagempor MSDN » 25 Mar 2020 16:58

Pelo código que vc colocou, está simples ver o erro, quando vc usa Iif() deve ser assim :

IIF( faz a comparação, se comparação ok executa o que estiver aqui, senão executa o que estiver aqui )

Exemplo

IIF( vSexo == 'M', " Sexo Masculino ", " Sexo Feminino " )

No seu caso, vc não fez uma comparação no inicio, fez uma atribuição usando " := "

Abraço
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 786
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 164 vezes
Mens.Curtidas: 109 vezes

Textbox com Validação

Mensagempor syslink » 25 Mar 2020 19:55

MSDN escreveu:está simples ver o erro
num tem erro
vc entendeu errado
quero fazer na ultima verificacao do iif uma dupla execucacao de tarefa
sem precisa criar uma function pra resolver tudo
eh possivel?
syslink
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 126
Data de registro: 20 Fev 2018 13:13
Cidade/Estado: joinvile/sc
Curtiu: 2 vezes
Mens.Curtidas: 2 vezes

Textbox com Validação

Mensagempor Heero » 25 Mar 2020 23:54

syslink escreveu:
MSDN escreveu:está simples ver o erro
num tem erro
vc entendeu errado
quero fazer na ultima verificacao do iif uma dupla execucacao de tarefa
sem precisa criar uma function pra resolver tudo
eh possivel?


Syslink,

Veja se é isso que você quer:

IIF(MsgYesNo("Exemplo"), ResultadoPositivo(), {ResultadoNegativo1(), ResultadoNegativo2()})


Por favor, retorne se é isso mesmo, abraços.
Ricardo Rodrigues
Harbour 3.2 + BCC + Minigui
Cursando Análise e Desenvolvimento de Sistemas
Heero
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 43
Data de registro: 13 Jul 2015 22:10
Cidade/Estado: Guarulhos/SP
Curtiu: 8 vezes
Mens.Curtidas: 3 vezes

Textbox com Validação

Mensagempor alxsts » 26 Mar 2020 20:03

Olá!
ONENTER iif(CONFIRMOU := F_MUDA_SENHA_HMG.TBmPASSWORD.value == F_MUDA_SENHA_HMG.TBaPASSWORD.value, F_MUDA_SENHA_HMG.Bt_1.setfocus,F_MUDA_SENHA_HMG.TBaPASSWORD.setfocus)


O teu exemplo é em MiniGUI, com a qual não tenho intimidade. Na HwGUI, sempre que codificamos ações relacionadas a eventos do formulário, o fazemos na forma de code blocks:
ON CLICK { || Acao() }

No caso do If imediato ( IIF() ), se mais de uma ação precisar ser executada, colocamos as ações entre parêntesis, separados por vírgula:
ON CLICK { || iif( ( CONFIRMOU := F_MUDA_SENHA_HMG.TBmPASSWORD.value() ) == F_MUDA_SENHA_HMG.TBaPASSWORD.value(), F_MUDA_SENHA_HMG.Bt_1.setfocus(), ( Mensagem( "Senha incorreta!" ), F_MUDA_SENHA_HMG.TBaPASSWORD.setfocus() ) }


Pessoalmente, acho que a boa prática é criar funções para tratamento dos eventos. Estes IIfs, dependendo da situação, vão crescendo e a leitura e manutenção deste tipo de código se tornam cada vez mais difícil, como já se percebe no código acima.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2310
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 14 vezes
Mens.Curtidas: 161 vezes

Textbox com Validação

Mensagempor JoséQuintas » 26 Mar 2020 20:14

Codeblock é função.
Precisa testar, já não lembro direito a sintaxe:

ON CLICK { || ;
   IF ( CONFIRMOU := F_MUDA_SENHA_HMG.TBmPASSWORD.value() ) == F_MUDA_SENHA_HMG.TBaPASSWORD.value();
      F_MUDA_SENHA_HMG.Bt_1.setfocus();
   ELSE
      Mensagem( "Senha incorreta!" );
      F_MUDA_SENHA_HMG.TBaPASSWORD.setfocus();
   ENDIF;
   }
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14689
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 864 vezes

Textbox com Validação

Mensagempor JoséQuintas » 26 Mar 2020 20:27

Aceitou isto:

PROCEDURE MAIN

   LOCAL bCode

   CLS
   bCode := { | A, B |
   IF A = B
      Chama1()
   ELSE
      Mensagem( "Senha incorreta!" )
      Chama2()
   ENDIF
   ? "teste"
   Inkey(0)
   RETURN NIL
   }
   Eval( bCode )

FUNCTION Chama1(); RETURN NIL
FUNCTION Chama2(); RETURN NIL
FUNCTION Mensagem(); RETURN NIL
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14689
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 864 vezes

Textbox com Validação

Mensagempor syslink » 28 Mar 2020 23:25

muito complicado. melhor mesmo partir pra funcao q jah fiz e funciono.
syslink
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 126
Data de registro: 20 Fev 2018 13:13
Cidade/Estado: joinvile/sc
Curtiu: 2 vezes
Mens.Curtidas: 2 vezes

Textbox com Validação

Mensagempor MSDN » 29 Mar 2020 13:10

Tudo bem que vc conseguiu fazer uma função que resolveu seu problema, porém, expor da forma como fez, não foi muito educado com todo mundo que tentou te ajudar ! Podia colocar um " Valeu " " Obrigado "
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 786
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 164 vezes
Mens.Curtidas: 109 vezes

Textbox com Validação

Mensagempor syslink » 12 Abr 2020 19:26

MSDN escreveu: não foi muito educado
sinto mto nao era a intensao de ser mau educado. brigadu a todos pela ajuda e forsa.
syslink
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 126
Data de registro: 20 Fev 2018 13:13
Cidade/Estado: joinvile/sc
Curtiu: 2 vezes
Mens.Curtidas: 2 vezes

Anterior



Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 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