Clipper On Line • Ver Tópico - Dúvida sobre entrada de senha

Dúvida sobre entrada de senha

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Dúvida sobre entrada de senha

Mensagempor Pablo César » 24 Out 2013 16:49

Olá Toledo,

Consegui fazer que funcione a sua opção de digitar o caracter de espaços e corrigi sobre o BackSpace.

Veja como ficaria:
Function Espaco_Press()
cCmpValue := GetProperty( cFrmName, cCmpName, "Value" )
nCmpPos  := GetProperty( cFrmName, cCmpName, "CaretPos" )
cCmpValue += Space(1)
SetProperty( cFrmName, cCmpName, "Value", cCmpValue )
SetWindowText ( GetControlhandle(cCmpName,cFrmName), cCmpValue )
SetProperty( cFrmName, cCmpName, "CaretPos", nCmpPos+1 )
Return .T.

Function Back_Press()
cCmpValue := GetProperty( cFrmName, cCmpName, "Value" )
nCmpPos  := GetProperty( cFrmName, cCmpName, "CaretPos" )
cCmpValue := Stuff(cCmpValue,nCmpPos,1,"")
SetProperty( cFrmName, cCmpName, "Value", cCmpValue )
SetProperty( cFrmName, cCmpName, "CaretPos", If(nCmpPos>0,nCmpPos-1,0))
Return .T.


Ahhh econtrei os seguintes bugs no meu código:
- BackSpace está sendo colocado no lugar certo, mesmo no meio do texto
- Aceita Enter para confirmação de senha
- Não para no CheckBox a pressionar TAB
- Reposicionamento da primeira coluna para visualizar o destaque por completo
- Aceita ESC como caminho de saída em todas as janelas

Portanto vou pedir mais uma vez atualizar o arquivo na seção de Downloads, por favor e obrigado pela atenção (ante como moderador tornava-se mais fácil pra mim rs).
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Dúvida sobre entrada de senha

Mensagempor Toledo » 24 Out 2013 17:01

Pablo César escreveu:Consegui fazer que funcione a sua opção de digitar o caracter de espaços e corrigi sobre o BackSpace.

Eu já tinha corrigido estes probleminhas! E o seu código para a barra de espaço está mais enxuto.

O seu arquivo foi atualizado.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Dúvida sobre entrada de senha

Mensagempor Pablo César » 24 Out 2013 17:32

Obrigado Toledo pela atualização na seção de Downloads.

Ficou muito bom o seu exemplo, parabéns !

Toledo escreveu: E o seu código para a barra de espaço está mais enxuto.
Não fiz opção de ESPAÇO, mas nada que não possa ser implementado. Talvez mais uma fileira e aproveitaria colocar os botões SHIFT e BACKSPACE.

Outra sugestão: poderia colocar também a opção de voltar ao primeiro campo após ENTER para que possa navegar entre os campos no form anterior.

Programar com Minigui ou HMG é muito compensador...
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Dúvida sobre entrada de senha

Mensagempor luiz antonio da silva » 25 Out 2013 10:02

Bom dia !

O assunto tá rendendo...rs, fiquei pensando nas possibilidades de mudanças, uma que me ocorreu foi a de vários caracteres em um unico botão (tipo web de banco), segue código exemplo:
#include <hmg.ch>

Function Main
public tabela,CAPTURA:={}, SENHA:='789123', SENHA_OK:='111111'
nrow:=20
ncol:=-40
wid:=55
hei:=30

tabela:={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9'}

DADOS:={}
num:=rt:=ok:=0
vr:=""
while .t.
num:=hb_randomint(1,len(tabela))
if num<1 .or. num>len(tabela); loop; endif

OK:=0
FOR N=1 TO LEN(DADOS)
    IF AT(TABELA[NUM], DADOS[N])<>0
      OK:=1
      N:=LEN(DADOS)
   ENDIF
NEXT N
   
if ok=0
   if at(tabela[num],vr)<>0; ok:=1; endif
endif

if ok=0
   vr+=tabela[num]
   if len(vr)=3
      xv:=subst(vr,1,1)+"-"+subst(vr,2,1)+"-"+subst(vr,3,1)
      aadd(dados, xv)
      vr:=""
      rt+=1
   endif
endif

if rt=(len(tabela)/3); exit; endif
enddo
aadd(dados, 'OK')

DEFINE WINDOW Tcv AT 306 , 853 WIDTH 850 HEIGHT 350 title "teclado (senha: 789123)" on init monta() main

for a=1 to len(dados)
   lb:='tecla'+strzero(a,3)
   lba:="'"+lb+"'"
   ncol:=ncol+60
   if ncol>780
      nrow:=nrow+35
      ncol:=20
   endif
   obj:=dados[a]
   
   @ 20,20 button &lb caption "" width 23 height 23 action tecla(&lba)

   setproperty('tcv',lb,'row',nrow)
   setproperty('tcv',lb,'col',ncol)
   setproperty('tcv',lb,'caption',obj)
   setproperty('tcv',lb,'width',wid)
   setproperty('tcv',lb,'height',hei)
   setproperty('tcv',lb,'fontbold',.t.)
next a

END WINDOW
activate window tcv

Return

func monta()

retu

func tecla(x)
tcl:=getproperty('tcv',x,'CAPTION')
IF TCL<>'OK'
   AADD(CAPTURA, TCL)
   RETU
ENDIF   

IF LEN(CAPTURA)<>LEN(SENHA)
    MSGINFO("SENHA INVALIDA !")
   CAPTURA:={}
   RETU
ENDIF
   
OK_SENHA:=""
FOR N=1 TO LEN(SENHA)
    IF AT(SUBST(SENHA,N,1), CAPTURA[N])<>0
      OK_SENHA+='1'
   ELSE
      OK_SENHA+="0"
   ENDIF
NEXT N

IF OK_SENHA=SENHA_OK
   MSGINFO("SENHA VALIDA !")
   CAPTURA:={}
ELSE
   MSGINFO("SENHA INVALIDA !")
   CAPTURA:={}
ENDIF
retu


* Não me preocupei com o tamanho do código, ficou assim para que sua leitura seja simples.

abraço.
Luiz.
HMG 3.4.4 - SQL SERVER - ORACLE
luiz antonio da silva
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 161
Data de registro: 21 Nov 2006 21:12
Cidade/Estado: serrana-sp
Curtiu: 13 vezes
Mens.Curtidas: 10 vezes

Dúvida sobre entrada de senha

Mensagempor Pablo César » 25 Out 2013 10:38

luiz antonio da silva escreveu:fiquei pensando nas possibilidades de mudanças, uma que me ocorreu foi a de vários caracteres em um unico botão
Então... foi o que eu arranjei com o botão SHIFT para obter duplo valor da mesma tecla, alternando-a...
Agora acabei de adicionar a tecla ESPAÇO, TAB e SHIFT-TAB para poder navegar entre os campos e vou fazê-lo com que navegue somente entre campos do tipo TEXT.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Dúvida sobre entrada de senha

Mensagempor Pablo César » 26 Out 2013 11:02

Motivado a melhorar o meu exemplo baseado nos recursos do exemplo do Toledo ao qual agradecemos imensamente a sua contribuição, eis as melhoras que fiz nesta versão:

- Adicionado novas teclas: Espaço, Tab, Shift-Tab
- Fiz uma nova opção de teste de formulário, apenas para navegar de campos de texto com o teclado
- Nova opção de CONFIG no menu principal para configurar se deseja com som, forçar VK e destacar ao clicar no VK
- Pode também alterar tais configurações na Barra de Status
- Foi adicionado exceções de teclas no VK. Você pode definir qual tecla estará habilitada
- Otimizado o posicionamento do VK dentro da área do desktop
- VK numérico comutável e auto reconhece TEXTBOX numéricos
- Opção de navegando entre campos do tipo TEXTO
- Código fonte otimizado

Screen1.PNG


Espero que gostem ! (A nova versão estará disponível na seção de Downloads)
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Dúvida sobre entrada de senha

Mensagempor Claudio Soto » 24 Jun 2014 16:50

Funciones para manejar el teclado virtual del sistema (On Screen Keyboard) desde HMG: http://www.hmgforum.com/viewtopic.php?p=35243#p35243
Espero que les sea útil.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 555
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 166 vezes

Dúvida sobre entrada de senha

Mensagempor lugab » 21 Set 2017 14:29

Bacana, rotina ótima pra quem quer aprender minigui...

Toledo, como é que eu compilo essa sua rotina ?

Grato
lugab
lugab
Colaborador

Colaborador
 
Mensagens: 843
Data de registro: 19 Mai 2009 15:58
Curtiu: 126 vezes
Mens.Curtidas: 38 vezes

Dúvida sobre entrada de senha

Mensagempor Toledo » 21 Set 2017 23:05

Amigo, se você usa a MiniGui Extended, entre na pasta onde está o DEMO.PRG e digite:

\minigui\batch\compile demo

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Dúvida sobre entrada de senha

Mensagempor lugab » 22 Set 2017 00:30

Obrigado, Toledo...

(Ps: Deixei uma solicitação em msg privada pra vc e aguardo sua resposta)

Um abraço
lugab
lugab
Colaborador

Colaborador
 
Mensagens: 843
Data de registro: 19 Mai 2009 15:58
Curtiu: 126 vezes
Mens.Curtidas: 38 vezes

Anterior



Retornar para MiniGui

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