Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous,
Ma question est sur les 'sle' avec la propriété password.
mon objectif c'est qu'a chaque fois q'un caractère est ajouté, il apparaisse en clair 1 seconde avant de revenir au mode password. Sauf que la seule idée que j'ai eu c'est de creer un nouvel event avec un ID de type keyup
mais la propriété password s'applique a tout le texte.
Comment attribuer password a chaque caractère dépendamment des autres
Merci
Dernière modification par kocaine (03-05-2013 13:40:46)
Hors ligne
Bonjour,
Pour ça tu vas être obligé de tout coder toi-même...
Hors ligne
Bon, je me suis lancé mais,
Comment convertir une variable de type keycode en string? string(key) ne fonctionne pas
Hors ligne
Si tu ne veux pas t'embêter tu as toujours la solution de mettre un bouton qui t'affiche le mot de passe en entier pendant qu'il est cliqué
sur le lbuttondown de ton bouton/image/ce que tu veux
ton_sle.password = false
et sur le lbuttonup de ton bouton/image/ce que tu veux
ton_sle.password = true
ça c'est une solution rapide mais qui ne répond pas vraiment à ton problème
Pour le conversion keycode => char malheureusement il faut un bon gros choose case
Hors ligne
pourquoi je m'embarque que dans des trucs qui n'existe pas en natif sur PB, toujours condamné a ecrire des gros pavés de code pour des fonctionnalités que j'utilise tout le temps sur mon telephone
Hors ligne
je crois pouvoir me passer du choose case, je suis entrain de tester.
je posterai la solution quand ça sera au point
Hors ligne
voila où j'en suis:
dans un event de type keyup:
long ll_diff if len(sle_pwd.text)<>gl_i then // i de valeur initiale 0 ll_diff=len(sle_pwd.text)-i if len(sle_pwd.text)>i then gs_pwd=gs_pwd+string(char(9679)) gs_real_pwd=gs_real_pwd+right(sle_pwd.text,ll_diff) sleep(0.5) sle_pwd.text=gs_pwd i=len(gs_real_pwd) end if if len(sle_pwd.text)<i then gs_pwd=left(gs_pwd,i+ll_diff) gs_real_pwd=left(gs_real_pwd,i+ll_diff) i=len(gs_real_pwd) end if end if sle_pwd.selecttext(len(sle_pwd.text)+1,0)
ca marche nickel ,mais il reste un defaut c'est qu'il faut pas taper super vite le mot de passe (a cause de la nature de l'event qui est keyUP)
Dernière modification par kocaine (03-05-2013 13:40:25)
Hors ligne
pas testé le code mais est-ce que ça fonctionne en cas de copier/couper/coller et quand l'utilisateur n'écrit ou n'efface pas en fin de chaine ?
Hors ligne
bien vu mec
non ça ne marche pas
je me penche dessus
Hors ligne
en remplacant:
gs_pwd=gs_pwd+string(char(9679))
par:
gs_pwd=gs_pwd+fill(char(9679),ll_diff)
et en mettant le calcul de la diff avant le premier if, ca marche pour le copier/coller mais que en fin de champ
ca fait n'importe quoi des que je ne suis pas en fin de champ
en reflexion
Hors ligne
logiquement tu as un un sle_.position() qui devrait pouvoir t'aider
Hors ligne