Clipper On Line • Ver Tópico - AJUDA em rotina de Password

AJUDA em rotina de Password

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

AJUDA em rotina de Password

Mensagempor Fernando queiroz » 02 Jan 2017 10:04

estou tentando fazer uma rotina de acesso ao sistema
mas estou enfrentando a falta de conhecimento na HWGUI

@ 121,84 GET senha VAR vsenha SIZE 174,22 MAXLENGTH 9 PASSWORD WHEN {|senha| GetPassword(senha)}

A ideia é quando estiver nesta linha o que for digitado passar para a rotina abaixo
function GetPassword( oGet )

LOCAL nKey,              ;
      nChar,             ;
      cKey

  // read the GET if the WHEN condition is satisfied
  IF ( GetPreValidate(oGet) )
    // activate the GET for reading
    oGet:SetFocus()

    oGet:cargo := ""
    DO WHILE ( oGet:exitState == 0 )
      // check for initial typeout (no editable positions)
      IF ( oGet:typeOut )
        oGet:exitState := GE_ENTER
      ENDIF

      // apply keystrokes until exit
      DO WHILE ( oGet:exitState == 0 )
        nKey := InKey(0)
        IF nKey >= 32 .AND. nKey <= 255
          oGet:cargo += Chr(nKey)
          GetApplyKey(oGet, Asc("*"))
          ELSEIF nKey == K_BS
          oGet:cargo := Substr(oGet:cargo, 1, Len(oGet:cargo) - 1)
          GetapplyKey(oGet, nKey)
        ELSEIF nKey == K_ENTER
          GetApplyKey(oGet, nKey)
        ENDIF
      ENDDO

      // disallow exit if the VALID condition is not satisfied
      IF ( !GetPostValidate(oGet) )
        oGet:exitState := 0
      ENDIF
    ENDDO
    // de-activate the GET
    oGet:KillFocus()
  ENDIF
  IF oGet:exitState != 7
    oGet:varPut(oGet:cargo)
  ENDIF

RETURN



ajuda para o caso
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

AJUDA em rotina de Password

Mensagempor sygecom » 02 Jan 2017 12:03

@ 121,84 GET senha VAR vsenha SIZE 174,22 MAXLENGTH 9 PASSWORD;
ON CHANGE {|| GetPassword(vsenha )}
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7005
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

AJUDA em rotina de Password

Mensagempor Fernando queiroz » 02 Jan 2017 12:17

Agora foi um monte de erros na execucao

Error BASE/1004 No exported method: EXITSTATE
Called from ->EXITSTATE(0)
Called from SGCFU3.PRG->GETPASSWORD(281)
Called from SGCFU3.PRG->(b)SENHA_GRAFICA(184)
Called from source\winapi/hdialog.prg->ONDLGCOMMAND(335)
Called from source\winapi/hdialog.prg->(b)(_INITSTATICS00003)(0)
Called from source\winapi/hdialog.prg->HDIALOG:ONEVENT(182)
Called from ->HWG_SETDLGITEMTEXT(0)
Called from source\winapi/hedit.prg->HEDIT:REFRESH(409)
Called from source\winapi/hedit.prg->__WHEN(826)
Called from source\winapi/hedit.prg->(b)HEDIT_NEW(95)
Called from source\winapi/hdialog.prg->ONDLGCOMMAND(335)
Called from source\winapi/hdialog.prg->(b)(_INITSTATICS00003)(0)
Called from source\winapi/hdialog.prg->HDIALOG:ONEVENT(182)
Called from ->HWG_SETFOCUS(0)
Called from source\winapi/hedit.prg->HWG_GETSKIP(1058)
Called from source\winapi/hdialog.prg->ONDLGCOMMAND(320)
Called from source\winapi/hdialog.prg->(b)(_INITSTATICS00003)(0)
Called from source\winapi/hdialog.prg->HDIALOG:ONEVENT(182)
Called from ->HWG_DLGBOXINDIRECT(0)
Called from source\winapi/hdialog.prg->HDIALOG:ACTIVATE(135)
Called from SGCFU3.PRG->SENHA_GRAFICA(192)
Called from SGC.PRG->MAIN(239)

HWGUI 2.20 Build 3
Date:02/01/2017
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

AJUDA em rotina de Password

Mensagempor asimoes » 03 Jan 2017 13:56

Olá

Eu tenho essa rotina de login veja se te ajuda.

Para usar:

   cUsuSis := ""
   cSenSis := ""
   *
   DO WHILE .T.
      GetLoginUsuario(@cUsuSis, @cSenSis)
      IF Empty(cUsuSis) .AND. Empty(cSenSis)
        SaidaSist() //função para sair do sistema
      ENDIF
      cChave := cUsuSis + cSenSis
      IF ! USUARIO->( DbSeek( cChave ) )
         IF hwg_MsgYesNo( "Usuário ou senha inválida, tentar outra vez?", "Atenção" )
            LOOP
         ENDIF
         SaidaSist()
      ENDIF
      EXIT
   ENDDO

FUNCTION GetLoginUsuario( cUsuario, cSenha )
LOCAL lOk:=.F., oFont, vSenha := Space(1), vUsuario := Space(1)
LOCAL oIconOk := HIcon():AddResource("ICON_OK16"), oIconSair := HIcon():AddResource("ICON_SAIR16"), lContinua := .T.
PRIVATE lValida := .F., oGetcUsuario, oGetcSenha
   
   oFont := HFont():Add( "Courier New", 0, -16, 550 )

   DO WHILE lContinua

      INIT DIALOG oDlgAcesso TITLE "Acesso ao Sistema" ;
                  AT 0, 0 ;
                  SIZE 230, 150 ;
                  STYLE DS_CENTER + WS_VISIBLE + WS_SYSMENU ;
                  ICON HIcon():AddResource("ICON_CADEADO") ;
                  FONT oFont ;
                  CLIPPER ;
                  NOEXIT ;
                  ON INIT { | o | o:nInitFocus:=oGetcUsuario }
     
      @  30, 20 SAY "Usuário" SIZE 80, 20
     
      @ 110, 17 GET oGetcUsuario VAR vUsuario SIZE 80, 28 PICTURE '@!' STYLE WS_DLGFRAME MAXLENGTH 6 COLOR ::hwg_RGB(0, 0, 255) BACKCOLOR 16777172 TOOLTIP "Digite o usuário."

      @  30, 50 SAY "Senha" SIZE 80, 20 Tooltip 'Digite a Senha'
     
      @ 110, 47 GET oGetcSenha VAR vSenha SIZE 80, 28 PASSWORD STYLE WS_DLGFRAME MAXLENGTH 6 COLOR ::hwg_RGB(0, 0, 255) BACKCOLOR 16777172 TOOLTIP "Digite a senha de acesso."
     
      @  30, 85 BUTTONEX btnOk ;
                         CAPTION  "Entrar" ;
                         ON CLICK {||IF(!ValidaUsuarioSenha( @cUsuario, @cSenha ), oGetcUsuario:SetFocus(), hwg_EndDialog())} ;
                         SIZE     70, 20 ;
                         ICON     oIconOk:handle  ;
                         FONT HFont():Add( "Arial", 0, -13, 550 ) ;
                         STYLE WS_TABSTOP ;
                         TOOLTIP   "Entrar com a senha de acesso."

      @ 120, 85 BUTTONEX btnSair ;
                         CAPTION  "Sair" ;
                         ON CLICK {||HWG_EndDialog()} ;
                         SIZE     70, 20 ;
                         ICON     oIconSair:handle  ;
                         FONT HFont():Add( "Arial", 0, -13, 550 ) ;
                         STYLE WS_TABSTOP ;
                         TOOLTIP   "Sair do sistema."

      oDlgAcesso:Activate()

      lOk := lValida
      RELEASE lValida
      EXIT
   ENDDO
   
   oFont:Release()
     
RETURN lOk

FUNCTION ValidaUsuarioSenha( cUsuario, cSenha )
LOCAL cErro:="", lResp:=.T.
      DO CASE
      CASE Empty(oGetcUsuario:VarGet()) .AND. Empty(oGetcSenha:VarGet())
         cErro := "Usuário e senha inválida."
      CASE Empty(oGetcUsuario:VarGet())
         cErro := "Usuário inválido."
      CASE Empty(oGetcSenha:VarGet())
         cErro := "Senha inválida."
      ENDCASE
      lValida := Empty(cErro)
      IF !lValida
         IF hwg_MsgYesNo(cErro+" tentar outra vez?", "Atenção")
            oGetcUsuario:VarPut(Space(6))
            oGetcSenha:VarPut(Space(6))
            oGetcUsuario:Refresh()
            oGetcSenha:Refresh()
         ELSE
            lValida  := .T.
            cUsuario := ""
            cSenha   := ""
         ENDIF
      ELSE
         cUsuario := AllTrim(oGetcUsuario:VarGet())
         cSenha   := AllTrim(oGetcSenha:VarGet())
      ENDIF
RETURN lValida

Screen Shot 01-03-17 at 02.55 PM.PNG
Screen Shot 01-03-17 at 02.55 PM.PNG (7.29 KiB) Visualizado 997 vezes
â–º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




Retornar para HwGui

Quem está online

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