dúvida de iniciante em HwGui: tela de login

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

dúvida de iniciante em HwGui: tela de login

Mensagem por cjp »

Desculpe, mas não te entendi.

Testei o teu código, mas não funcionou aqui.

Pelo que eu entendi, a solução estaria nesta linha:
INIT DIALOG oDlgAcesso TITLE "Teste" AT 0, 0 SIZE 814, 484 CLIPPER COLOR WHITE ;
STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+DS_CENTER
ON INIT {|| INI_SENHAS() }
Mas não vi nada aí que pudesse solucionar minha dúvida.

Vc falou em Clipper, imaginei que pudesse ser o CLIPPER NOEXIT. Tentei mudar isso, mas não deu certo.

Poderia me explicar melhor, por favor?
Inacio de Carvalho Neto
gilbertosilverio
Usuário Nível 3
Usuário Nível 3
Mensagens: 339
Registrado em: 18 Jan 2009 10:39
Localização: Ribeirao Pires - SP

dúvida de iniciante em HwGui: tela de login

Mensagem por gilbertosilverio »

Ola Bom dia,

Creio que seria interessante você postar teu código, pois cada louco tem suas manias, e ai o pessoal vai verificar o que voce fez e corrigir, pois aqui pra mim funciona normalmente este trecho que montei para você poder ter uma ideia de como funciona.

Com te disse, não sou nenhum expert, tudo que desenvolvi foi com a ajuda do pessoal, muitos detalhes, e sempre me perco com rotinas mais avancadas, ai vou na tentativa erro, ate conseguir o que quero...

Aqui e que verifico se as condições são VERDADEIRAS e avanço para a próxima tela...

Código: Selecionar todos

VALID  { || ValidaSenha(), IF( lVal1 = .T. .AND. lVal2 = .T. , ( HWG_ENDDIALOG(),TELAPRINCIPAL() ), ( vSENHA:=SPAC(06), oDLGACESSO:REFRESH()) ) }
Posta o que você fez que fica mais fácil analisar e corrigir...
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

dúvida de iniciante em HwGui: tela de login

Mensagem por cjp »

Meu código rudimentar está assim:

Código: Selecionar todos

Function login()
         Local oDlg, oFont := HFont():Add( "MS Sans Serif",0,-13 ), oTimer, oSAY1, oSAY5
         Local snh := space(20)
		 local cRet :="OK"
         Local oE5, cProc
		 private conexao

         INIT DIALOG oDlg CLIPPER NOEXIT TITLE "Log in" AT 250,20 SIZE 250,200 FONT oFont

         hwg_SetColorinFocus( oDlg,, 13172680 )
   
         @ 15,20 SAY oSAY1 CAPTION "Digite a sua senha:" SIZE 260, 22
   
         @ 15,65 GET oE5 VAR snh PASSWORD SIZE 150, 26 //Precisa do objeto GET oE5

         @ 15,120  BUTTON "Entrar" SIZE 80, 32 ON CLICK {||oDlg:lResult:=.T.,hwg_EndDialog()}

         @ 100,120 BUTTON "Encerrar" SIZE 90,30 ON CLICK {||oDlg:Close()}

         ACTIVATE DIALOG oDlg
		 
		 if lastkey()=27
		    cRet="Cancelou"
		 else
		 
            IF !ADOconecta( 3, 4 )
			   cRet="Não conectou"
		    Endif
		 
		    cProc=conexao:execute("SELECT usuario FROM usuario WHERE senha='"+snh+"'")
		    if cProc:recordcount()=0
	           cProc:Close()
		       conexao:close()
               @ 15,20 SAY oSAY1 CAPTION "Senha nao confere" SIZE 260, 22
			   inkey(3)
			   cRet ="Senha errada"
		    else
		       us=cProc:Fields("usuario"):Value
	           cProc:Close()
		       conexao:close()
		    endif
		 endif
		 
Return cRet
Embora não esteja com uma tela muito agradável, mas está funcionando, exceto nessa questão de teclar enter para substituir o click no Ok, como eu gostaria.
Inacio de Carvalho Neto
Responder