Bonjour à toutes et à tous.
Je travaille actuellement sur une interface graphique au sein de laquelle un identifiant et un mot de passe sont demandés afin de réaliser certaines fonctions. Pour entrer ce login et ce mot de passe, j'utilise un clavier virtuel que j'ai crée via une autre figure; cet interface graphique est en effet destiné à un écran tactile et la commande dos('osk') comporte des problèmes de compatibilité ( je ne vais pas rentre dans les détails, si le clavier virtuel intéresse quelqu'un, je peux toujours le partager).
Quoiqu'il en soit, j'aimerai que lorsque j'écris le mot de passe, la lettre sur laquelle on appuie apparaît pendant un très court moment sur le static text dans lequel le mot de passe est affiché, puis soit transformé en '*'. Pour ce faire, j'utilise par exemple pour la touche 1 de mon clavier virtuel les commandes ci dessous:
Le problème est lorsque j'appuie rapidement sur mes pushbutton représentant les caractères de mon clavier virtuel, je court-circuite ce qui se trouve après la pause (en rouge dans le code ci dessus) et mon caractère n'est pas remplacé par un astérisque. Voyez-vous une solution pour pallier à ce problème?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if get(handles.visible,'Value') == 1 %handles.visible est la checkbox qui permet d'afficher le mot de passe ou de le remplacer par des '*' set(handles.text_written,'String',cat(2,get(handles.text_written,'String'),get(handles.one,'String'))); %handles.text_written est le static text dans lequel le mdp est affiché elseif get(handles.visible,'Value') == 0 set(handles.text_written,'String',cat(2,get(handles.text_written,'String'),get(handles.one,'String'))); %handles.ones est le push button de la touche 1 pause(0.2); temp = get(handles.text_written,'String'); set(handles.text_written,'String',cat(2,temp(1:end-1),'*')); end
En vous remerciant par avance,
Gooby
Partager