Textbox com Validação

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

Textbox com Validação

Mensagem por MSDN »

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
syslink
Usuário Nível 3
Usuário Nível 3
Mensagens: 132
Registrado em: 20 Fev 2018 13:13
Localização: joinvile/sc

Textbox com Validação

Mensagem por syslink »

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?
Heero
Usuário Nível 2
Usuário Nível 2
Mensagens: 51
Registrado em: 13 Jul 2015 22:10
Localização: Guarulhos/SP

Textbox com Validação

Mensagem por Heero »

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:

Código: Selecionar todos

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
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Textbox com Validação

Mensagem por alxsts »

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:

Código: Selecionar todos

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:

Código: Selecionar todos

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)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Textbox com Validação

Mensagem por JoséQuintas »

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

Código: Selecionar todos

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.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Textbox com Validação

Mensagem por JoséQuintas »

Aceitou isto:

Código: Selecionar todos

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.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
syslink
Usuário Nível 3
Usuário Nível 3
Mensagens: 132
Registrado em: 20 Fev 2018 13:13
Localização: joinvile/sc

Textbox com Validação

Mensagem por syslink »

muito complicado. melhor mesmo partir pra funcao q jah fiz e funciono.
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

Textbox com Validação

Mensagem por MSDN »

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 "
syslink
Usuário Nível 3
Usuário Nível 3
Mensagens: 132
Registrado em: 20 Fev 2018 13:13
Localização: joinvile/sc

Textbox com Validação

Mensagem por syslink »

MSDN escreveu: não foi muito educado
sinto mto nao era a intensao de ser mau educado. brigadu a todos pela ajuda e forsa.
Responder