Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Conversion ascii alphabet | |
| | |
Auteur | Message |
---|
Fhoest
Nombre de messages : 97 Age : 48 Localisation : Nord Date d'inscription : 04/01/2015
| Sujet: Re: Conversion ascii alphabet Jeu 8 Jan 2015 - 18:17 | |
| - ygeronimi a écrit:
- La dll de Klaus pourrait réduire ton programme de quelques lignes
avec l' appel pour connaitre l etat du clavier ( caps lock )...
...moi je dis ça...mais je dis rien. Merci, voici le code avec la dll. en plus cela me permet de voir et comprendre le fonctionnement d'appel dll, qui est plutôt simple. très bon boulot (pas si débile que ça après réflexion n'est ce pas ?) - Code:
-
REM définition et instanciation variables DIM X%,min$,maj$,MODE$,TEMP% min$ = "abcdefghijklmnopqrstuvwxyz" maj$ =upper$(min$) ' ---------------------------------- ' ---------------------------------- REM définition des LABELS LABEL OPT_CHOIX,LBL_CONVERSION,EVENT_RAFRAICHIR, LBL_FINDCAPSLOCK,EVENT_FINDCAPSLOCK
' ---------------------------------- ' ---------------------------------- REM code et propriété CONTAINER CONTAINER 27 WIDTH 27, 610 HEIGHT 27 , 112 COLOR 27, 25,255,150 ' ---------------------------------- ' ---------------------------------- REM CASE à cochez minuscule ou majuscule OPTION 28 : CAPTION 28, "Minuscule" : TOP 28 , 90 : LEFT 28, 200 : MARK_ON 28 MODE$ = min$ ON_CLICK 28, OPT_CHOIX OPTION 29 : CAPTION 29, "Majuscule" :TOP 29 , 90 : LEFT 29, 300 ON_CLICK 29, OPT_CHOIX ' ---------------------------------- ' ---------------------------------- REM création bouton alphabet ' ---------------------------------- FOR X% = 1 to 26 BUTTON X% CAPTION X%, MID$(MODE$,X%,1) : ON_CLICK X%,LBL_CONVERSION IF X% >= 1 and X% =< 8 then LEFT X%, X% *75 - 70 : TOP X%,10 IF X% >= 9 and X% =< 16 LEFT X%, ((X%-8) *75) - 70 TOP X%, 35 END_IF IF X% >= 17 and X% =< 24 LEFT X%, ((X%-16)*75) - 70 TOP X%,60 END_IF IF X% => 25 LEFT X%, ((X%-24)*75) - 70 TOP X%,85 END_IF NEXT X% ' ---------------------------------- BUTTON 30 : TOP 30,85 : LEFT 30, 530 : ON_CLICK 30,EVENT_RAFRAICHIR : CAPTION 30, "RAFRAICHIR" BUTTON 32 : TOP 32,85 : LEFT 32, 455 : CAPTION 32 , "CapsLock_Off" : ON_CLICK 32,EVENT_FINDCAPSLOCK ' ---------------------------------- ' ---------------------------------- REM hauteur & largeur de la FORM ' ---------------------------------- WIDTH 0,626 : HEIGHT 0,155 CAPTION 0 ,"Convertisseur ASCII" ON_KEY_UP 0 , LBL_FINDCAPSLOCK
' ---------------------------------- ' ----------------------------------- REM INIT PROPRIETE CAPSLOCK AVEC DLL DE KLAUS ET CONSEIL DE YGERONIMI DLL_ON "KGF.dll" IF dll_call1("GetKeyboardState",20 )=2 MARK_ON 29 CAPTION 32, "CapsLock_On" ELSE MARK_ON 28 CAPTION 32, "CapsLock_Off" END_IF DLL_OFF ' ---------------------------------- ' ---------------------------------- SET_FOCUS 0 END ' ---------------------------------- ' ---------------------------------- ' LABELS . & EVENT_BTN.............. ' ---------------------------------- OPT_CHOIX: X% = NUMBER_CLICK SELECT X% CASE 28 : MODE$ = min$:REMPLISSAGE() CASE 29 : MODE$ = maj$:REMPLISSAGE() CASE 30: ' Ne rien faire , laisser MODE$ telle quelle END_SELECT RETURN ' ---------------------------------- LBL_FINDCAPSLOCK: IF SCANCODE = 20 IF MODE$ = min$ MODE$ = maj$ REMPLISSAGE() CAPTION 32 , "CapsLock_On" MARK_ON 29 ELSE MODE$ = min$ REMPLISSAGE() CAPTION 32 , "CapsLock_Off" MARK_ON 28 END_IF END_IF SET_FOCUS 0 RETURN ' ---------------------------------- LBL_CONVERSION: X% = NUMBER_CLICK IF NUMERIC(CAPTION$(X%)) < 1 CAPTION X%, (ASC(CAPTION$(X%))) : SET_FOCUS 0 ELSE TEMP% = VAL(CAPTION$(X%)) CAPTION X%, CHR$(TEMP%) : SET_FOCUS 0 END_IF RETURN REM ============================================================================ EVENT_RAFRAICHIR: REMPLISSAGE() RETURN ' ---------------------------------- EVENT_FINDCAPSLOCK: IF CAPTION$(32)= "CapsLock_Off" MODE$ = maj$ REMPLISSAGE() CAPTION 32 , "CapsLock_On" MARK_ON 29 ELSE MODE$ = min$ REMPLISSAGE() CAPTION 32 , "CapsLock_Off" MARK_ON 28 END_IF RETURN
' ---------------------------------- ' ---------------------------------- ' Routines .......................... ' ---------------------------------- SUB REMPLISSAGE() FOR X% = 1 to 26 CAPTION X%, MID$(MODE$,X%,1) : ON_CLICK X%,LBL_CONVERSION NEXT X% SET_FOCUS 0 END_SUB ' ---------------------------------- @+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 8 Jan 2015 - 19:25 | |
| Je me suis posé la question de l' utilité de "caps lock" dans ton utilitaire... En fait, l' utilisateur s' en fou royalement puisque le but est de connaître le code ASCII d' une lettre en minuscule ou en majuscule. Que le clavier soit verrouillé en majuscule ou pas, peu importe... Ou bien alors, j' ai raté quelque chose dans ma réflexion... Bref j' ai continué à jouer avec ton programme et revu à ma façon la deuxième partie. Celle ou on entre un code et on a le caractère. Cela donne ça : - Code:
-
Dim no% :' variable pour l' incrémentation des objets Dim B%(26) :' variables numéros des boutons Dim B27% :' variable numero button refresh Dim CO% :' variable numero container option Dim O1%,O2% :' variables numéros des options Dim x% :' la variable passe partout Dim mode% :' variable du mode (Minuscule ou Majuscule) Dim etat%(26) :' variables d' etat des boutons Dim E1% :' variable numero edit Dim A1%,A2% :' variable numero alpha Label clic,change :' événement click et change
' Form 0 height 0,170 : width 0,26+(13*21) top 0,(screen_y-height(0))/2 : left 0,(screen_x-width(0))/2 font_name 0,"arial" Caption 0,"ASCII"
' container_option no%=no%+1 : CO%=no% container_option no% height no%,35 : width no%,width(0)-26 top no%,0 : left no%,5 caption no%," Mode "
' option 1 no%=no%+1 : O1%=no% Option no% parent no%,CO% : top no%,15 : left no%,5 cursor_point no% caption no%,"Minuscule" mark_on no% mode%=1 on_click no%,clic
' option 2 no%=no%+1 : O2%=no% Option no% parent no%,CO% : top no%,15 : left no%,120 cursor_point no% caption no%,"Majuscule" on_click no%,clic
' Buttons for x%=1 to 26 no%=no%+1 : B%(x%)=no% button no% width no%,21: height no%,21 if x%<14 top no%,35 : left no%,(21*x%)-16 else top no%,57 : left no%,(21*(x%-13))-16 end_if caption no%,chr$(x%+96) :font_bold no% cursor_point no% on_click no%,clic next x%
' Button Refresh no%=no%+1 : B27%=no% Button no% height no%,21 : width no%,100 top no%,79 : left no%,width(0)-(width(no%)+21) caption no%,"Refresh" cursor_point no% on_click no%,clic
' Edit no%=no%+1 : E1%=no% Edit no% width no%,30 : top no%,105 : left no%,80 hint no%,"Entrez un code ASCI, 0 à 255" On_change no%,change
' Alpha1 no%=no%+1 : A1%=no% Alpha no% width no%,30 : top no%,108 : left no%,120 caption no%,"= Caractère =>" font_color no%,255,0,0 : font_bold no%
' Alpha2 no%=no%+1 : A2%=no% Alpha no% width no%,30 : top no%,104 : left no%,200 caption no%,"" font_bold no% : font_size no%,14 : font_color no%,0,0,230
end
clic: if number_click=O1% mode%=1 Maj_mode() end_if if number_click=O2% mode%=2 Maj_mode() end_if if number_click<>O1% and number_click<>O2% for x%=1 to 26 if B%(x%)=number_click Convert(x%) end_if next x% end_if if number_click=B27% Refresh() end_if return
Sub Maj_mode() dim_local i% if mode%=1 for i%=1 to 26 caption B%(i%),chr$(96+i%) next i% else for i%=1 to 26 caption B%(i%),chr$(64+i%) next i% end_if End_sub
Sub Convert(z%) if etat%(z%)=0 etat%(z%)=1 if mode%=1 caption B%(z%),Str$(asc(chr$(96+z%))) else caption B%(z%),Str$(asc(chr$(64+z%))) end_if else etat%(z%)=0 if mode%=1 caption B%(z%),Chr$(96+z%) else caption B%(z%),Chr$(64+z%) end_if end_if End_sub
Sub Refresh() dim_local i% for i%=1 to 26 Caption B%(i%),chr$(96+i%) next i% text E1%,"" Mark_on O1% End_sub
change: off_change E1% if len(text$(E1%))<4 and len(text$(E1%))>0 if val(text$(E1%))<256 caption A2%,chr$(val(text$(E1%))) else message "Code erroné !!!..."+chr$(13)+"0 à 255" text E1%,"" end_if end_if if len(text$(E1%))=4 or len(text$(E1%))>4 message "Code erroné !!!..."+chr$(13)+"0 à 255" text E1%,"" end_if if len(text$(E1%))=0 Caption A2%,"" end_if on_change E1%,change return
Dernière édition par ygeronimi le Jeu 8 Jan 2015 - 19:59, édité 3 fois (Raison : Ajout du bouton refresh) | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 8 Jan 2015 - 19:36 | |
| Modif du code dans le post au dessus, petit bug... J' ai rajouté le bouton "refresh"... | |
| | | Fhoest
Nombre de messages : 97 Age : 48 Localisation : Nord Date d'inscription : 04/01/2015
| Sujet: Re: Conversion ascii alphabet Jeu 8 Jan 2015 - 21:04 | |
| - ygeronimi a écrit:
- Je me suis posé la question de l' utilité de "caps lock" dans ton utilitaire...
En fait, l' utilisateur s' en fou royalement puisque le but est de connaître le code ASCII d' une lettre en minuscule ou en majuscule. Que le clavier soit verrouillé en majuscule ou pas, peu importe... Ou bien alors, j' ai raté quelque chose dans ma réflexion... Oui et Non Si tu appuis sur la touche du capslock ça permet de mettre les majuscules ou min. mais c'est intéressant pour la rapidité de travail d'être en relation réel avec le clavier de l'utilisateur et non d'être en position inverse. Si par exemple l'utilisateur écrit dans un document (exemple word) il a besoin du programme mais doit passer du programme à sa feuille word, Si son capslock est inversé par rapport à ce qu'il voit sur le clavier du programme, lorsqu'il continuera de taper il sera en maj alors que le programme est en min (si on est pas en // avec le réel) comprends tu ce que je veux dire (pas facile à expliquer) Par contre si c'est simplement pour consulter je suis d'accord que l'on s'en fou. mais je préfère que se soit en relation avec le réel.(vu que c'est transparent) A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 9 Jan 2015 - 8:47 | |
| Si je suis ta réflexion. Il faut, non seulement, détecter l' état du clavier à l' ouverture du programme mais aussi à chaque fois que l' utilisateur revient au programme. | |
| | | Fhoest
Nombre de messages : 97 Age : 48 Localisation : Nord Date d'inscription : 04/01/2015
| Sujet: Re: Conversion ascii alphabet Ven 9 Jan 2015 - 15:42 | |
| Bonjour - ygeronimi a écrit:
- mais aussi à chaque fois que l' utilisateur revient au programme.
c'est juste je n'y avait pas penser. merci, je vais essayer de corriger cela. A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 11 Jan 2015 - 8:10 | |
| Comme je l' ai noté dans un autre sujet, tu peux te servir d' un timer mais adieu le mode manuel sans ajouter un bouton qui coupe le mode de détection auto. En plus, l' affichage devra se faire ailleurs que sur le bouton cliqué, la Maj auto initialisera ce bouton parfois plus vite que ce que celui ci pourra être lu... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: RE Dim 11 Jan 2015 - 13:44 | |
| Voilà à quoi j' en suis arrivé : - Code:
-
Dim no%,Cont%,ContO%,Trk%,A%(3),Opt%(2),B%(27),Edi%,Tim% Dim x%,Bval%(26),Mode% Dim Kgf$ : Kgf$="P:\Dlls\KGF.dll" Label Clic,Change,Maj
dll_on Kgf$
' ****************************************************************************** ' INTERFACE ' ******************************************************************************
' Form 0 height 0,150 : width 0,26+(13*21) top 0,(screen_y-height(0))/2 : left 0,(screen_x-width(0))/2 font_name 0,"arial" Caption 0,"ASCII"
' container mode no%=no%+1 : Cont%=no% container no% height no%,35 : width no%,95 top no%,0 : left no%,5 Caption no%," Mode "
' track_bar no%=no%+1 : Trk%=no% Track_bar no% Parent no%,Cont% : top no%,13 : left no%,10 : width no%,30 : height no%,15 Cursor_point no% min no%,0 : max no%,1 : Position no%,1
' Alpha mode no%=no%+1 : A%(1)=no% Alpha no% : parent no%,cont% : top no%,15 : left no%,45 Caption no%,"Auto"
' container_option no%=no%+1 : ContO%=no% container_option no% height no%,35 : width no%,width(0)-120 top no%,0 : left no%,100 caption no%," Etat du clavier "
' option 1 no%=no%+1 : Opt%(1)=no% Option no% parent no%,ContO% : top no%,15 : left no%,5 cursor_point no% caption no%,"Minuscule" on_click no%,clic
' option 2 no%=no%+1 : Opt%(2)=no% Option no% parent no%,ContO% : top no%,15 : left no%,80 :width no%,80 cursor_point no% caption no%,"Majuscule" on_click no%,clic
' Buttons for x%=1 to 26 no%=no%+1 : B%(x%)=no% button no% width no%,21: height no%,21 if x%<14 top no%,35 : left no%,(21*x%)-16 else top no%,57 : left no%,(21*(x%-13))-16 end_if cursor_point no% on_click no%,clic next x%
' Edit no%=no%+1 : Edi%=no% Edit no% width no%,30 : top no%,85 : left no%,80 hint no%,"Entrez un code ASCI, 0 à 255" On_change no%,change
' Alpha1 no%=no%+1 : A%(2)=no% Alpha no% width no%,30 : top no%,88 : left no%,120 caption no%,"= Caractère =>" font_color no%,255,0,0 : font_bold no%
' Alpha2 no%=no%+1 : A%(3)=no% Alpha no% width no%,30 : top no%,84 : left no%,200 caption no%,"" font_bold no% : font_size no%,14 : font_color no%,0,0,230
' Timer no%=no%+1 : Tim%=no% Timer no% : Timer_interval no%,250 : On_timer no%,Maj end
' ****************************************************************************** ' LABELS ' ******************************************************************************
Clic: if number_click=Opt%(1) mode%=1 Maj_mode() end_if if number_click=Opt%(2) mode%=2 Maj_mode() end_if if number_click<>Opt%(1) and number_click<>Opt%(2) for x%=1 to 26 if B%(x%)=number_click Affich(x%) end_if next x% end_if return
Change: off_change Edi% if len(text$(Edi%))<4 and len(text$(Edi%))>0 if val(text$(Edi%))<256 caption A%(3),chr$(val(text$(Edi%))) else message "Code erroné !!!..."+chr$(13)+"0 à 255" text Edi%,"" end_if end_if if len(text$(Edi%))=4 or len(text$(Edi%))>4 message "Code erroné !!!..."+chr$(13)+"0 à 255" text Edi%,"" end_if if len(text$(Edi%))=0 Caption A%(3),"" end_if on_change Edi%,change return
Maj: Refresh() return
' ****************************************************************************** ' PROCEDURES ' ******************************************************************************
Sub Refresh() if position(Trk%)=0 Caption A%(1),"Manuel" : Font_color A%(1),0,0,200 Exit_sub else Caption A%(1),"Auto" : Font_color A%(1),200,0,0 end_if Timer_off Tim% dim_local i%,res%,vk% vk%=20 res% = dll_call1("GetKeyboardState",vk%) if res%=2 for i%=1 to 26 Caption B%(i%),chr$(64+i%) Bval%(i%)=64+i% next i% Mark_on Opt%(2) mode%=1 else for i%=1 to 26 Caption B%(i%),chr$(96+i%) Bval%(i%)=96+i% next i% Mark_on Opt%(1) mode%=2 end_if Timer_on Tim% End_sub
Sub Maj_mode() dim_local i% if mode%=1 for i%=1 to 26 caption B%(i%),chr$(96+i%) Bval%(i%)=96+i% next i% else for i%=1 to 26 caption B%(i%),chr$(64+i%) Bval%(i%)=64+i% next i% end_if End_sub
Sub Affich(z%) text Edi%,str$(Bval%(z%)) End_sub | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Conversion ascii alphabet Dim 11 Jan 2015 - 14:12 | |
| Problem: Impossible to choose capital letter
Heu ... I cannot choose the option capital letter How do I have to make? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 11 Jan 2015 - 15:02 | |
| Quel est le problème ?... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Conversion ascii alphabet Dim 11 Jan 2015 - 15:39 | |
| Il ne m'est pas possible de choisir les majuscules | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 11 Jan 2015 - 16:34 | |
| Est ce bien mon code que tu utilises ? - Code:
-
Dim no%,Cont%,ContO%,Trk%,A%(3),Opt%(2),B%(27),Edi%,Tim% Dim x%,Bval%(26),Mode% Dim Kgf$ : Kgf$="P:\Dlls\KGF.dll" Label Clic,Change,Maj
dll_on Kgf$
' ****************************************************************************** ' INTERFACE ' ******************************************************************************
' Form 0 height 0,150 : width 0,26+(13*21) top 0,(screen_y-height(0))/2 : left 0,(screen_x-width(0))/2 font_name 0,"arial" Caption 0,"ASCII"
' container mode no%=no%+1 : Cont%=no% container no% height no%,35 : width no%,95 top no%,0 : left no%,5 Caption no%," Mode "
' track_bar no%=no%+1 : Trk%=no% Track_bar no% Parent no%,Cont% : top no%,13 : left no%,10 : width no%,30 : height no%,15 Cursor_point no% min no%,0 : max no%,1 : Position no%,1
' Alpha mode no%=no%+1 : A%(1)=no% Alpha no% : parent no%,cont% : top no%,15 : left no%,45 Caption no%,"Auto"
' container_option no%=no%+1 : ContO%=no% container_option no% height no%,35 : width no%,width(0)-120 top no%,0 : left no%,100 caption no%," Etat du clavier "
' option 1 no%=no%+1 : Opt%(1)=no% Option no% parent no%,ContO% : top no%,15 : left no%,5 cursor_point no% caption no%,"Minuscule" on_click no%,clic
' option 2 no%=no%+1 : Opt%(2)=no% Option no% parent no%,ContO% : top no%,15 : left no%,80 :width no%,80 cursor_point no% caption no%,"Majuscule" on_click no%,clic
' Buttons for x%=1 to 26 no%=no%+1 : B%(x%)=no% button no% width no%,21: height no%,21 if x%<14 top no%,35 : left no%,(21*x%)-16 else top no%,57 : left no%,(21*(x%-13))-16 end_if cursor_point no% on_click no%,clic next x%
' Edit no%=no%+1 : Edi%=no% Edit no% width no%,30 : top no%,85 : left no%,80 :color no%,250,250,0:font_bold no% hint no%,"Entrez un code ASCI, 0 à 255" On_change no%,change
' Alpha no%=no%+1 : A%(2)=no% Alpha no% width no%,30 : top no%,88 : left no%,120 caption no%,"= Caractère =>" font_color no%,255,0,0 : font_bold no%
' Alpha no%=no%+1 : A%(3)=no% Alpha no% width no%,30 : top no%,84 : left no%,205 caption no%,"" font_bold no% : font_size no%,14 : font_color no%,0,0,230
' Timer no%=no%+1 : Tim%=no% Timer no% : Timer_interval no%,250 : On_timer no%,Maj end
' ****************************************************************************** ' LABELS ' ******************************************************************************
Clic: if number_click=Opt%(1) mode%=1 Maj_mode() end_if if number_click=Opt%(2) mode%=2 Maj_mode() end_if if number_click<>Opt%(1) and number_click<>Opt%(2) for x%=1 to 26 if B%(x%)=number_click Affich(x%) end_if next x% end_if return
Change: off_change Edi% if len(text$(Edi%))<4 and len(text$(Edi%))>0 if val(text$(Edi%))<256 caption A%(3),chr$(val(text$(Edi%))) else message "Code erroné !!!..."+chr$(13)+"0 à 255" text Edi%,"" end_if end_if if len(text$(Edi%))=4 or len(text$(Edi%))>4 message "Code erroné !!!..."+chr$(13)+"0 à 255" text Edi%,"" end_if if len(text$(Edi%))=0 Caption A%(3),"" end_if on_change Edi%,change return
Maj: Refresh() return
' ****************************************************************************** ' PROCEDURES ' ******************************************************************************
Sub Refresh() if position(Trk%)=0 Caption A%(1),"Manuel" : Font_color A%(1),0,0,200 Exit_sub else Caption A%(1),"Auto" : Font_color A%(1),200,0,0 end_if Timer_off Tim% dim_local i%,res%,vk% vk%=20 res% = dll_call1("GetKeyboardState",vk%) if res%=2 for i%=1 to 26 Caption B%(i%),chr$(64+i%) Bval%(i%)=64+i% next i% Mark_on Opt%(2) mode%=1 else for i%=1 to 26 Caption B%(i%),chr$(96+i%) Bval%(i%)=96+i% next i% Mark_on Opt%(1) mode%=2 end_if Timer_on Tim% End_sub
Sub Maj_mode() dim_local i% if mode%=1 for i%=1 to 26 caption B%(i%),chr$(96+i%) Bval%(i%)=96+i% next i% else for i%=1 to 26 caption B%(i%),chr$(64+i%) Bval%(i%)=64+i% next i% end_if End_sub
Sub Affich(z%) text Edi%,str$(Bval%(z%)) End_sub
Perso, je n' ai pas de souci. Le mode de départ est auto( l' état est celui du clavier et si tu essaies de changer manuellement, il revient dans l' état du clavier en 250 millièmes de secondes)Si tu veux choisir toi même entre majuscule et minuscule, il te faut passer en mode manuel.Le mode se change en modifiant la track_bar du container "mode". ( je cherchais à simuler un interupteur et j' ai pas trouvé mieux que la track_bar avec un height inférieur à sa dimension de base ) | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Conversion ascii alphabet Dim 11 Jan 2015 - 18:40 | |
| Ok ! Ça marche Je suis plus vieux d’un jour qu’hier ! | |
| | | Fhoest
Nombre de messages : 97 Age : 48 Localisation : Nord Date d'inscription : 04/01/2015
| Sujet: Re: Conversion ascii alphabet Dim 11 Jan 2015 - 18:41 | |
| Bonjour à tous, voici le code avec le timer conseil de ygeronimi: - Code:
-
REM définition et instanciation variables ' ======================================= DIM MIN$,MAJ$,MODE$,X% MIN$ = "abcdefghijklmnopqrstuvwxyz" MAJ$ =upper$(min$) ' ---------------------------------- ' ---------------------------------- REM définition des LABELS ' ====================================== LABEL LBL_CONVERSION,EVENT_RAFRAICHIR, LBL_FINDCAPSLOCK,LBL_INIT ' ---------------------------------- ' ---------------------------------- REM code et propriété CONTAINER ' ====================================== CONTAINER 27 WIDTH 27, 610 HEIGHT 27 , 112 COLOR 27, 25,255,150 ' ---------------------------------- ' ---------------------------------- REM CASE à cochez minuscule ou majuscule ' ====================================== OPTION 28 : CAPTION 28, "Minuscule" : TOP 28 , 90 : LEFT 28, 200 : MARK_ON 28 MODE$ = min$ INACTIVE 28 OPTION 29 : CAPTION 29, "Majuscule" :TOP 29 , 90 : LEFT 29, 300 INACTIVE 29 ' ---------------------------------- ' ---------------------------------- REM création bouton alphabet ' ====================================== FOR X% = 1 to 26 BUTTON X% CAPTION X%, MID$(MODE$,X%,1) : ON_CLICK X%,LBL_CONVERSION IF X% >= 1 and X% =< 8 then LEFT X%, X% *75 - 70 : TOP X%,10 IF X% >= 9 and X% =< 16 LEFT X%, ((X%-8) *75) - 70 TOP X%, 35 END_IF IF X% >= 17 and X% =< 24 LEFT X%, ((X%-16)*75) - 70 TOP X%,60 END_IF IF X% => 25 LEFT X%, ((X%-24)*75) - 70 TOP X%,85 END_IF NEXT X% ' ---------------------------------- BUTTON 30 : TOP 30,85 : LEFT 30, 530 : ON_CLICK 30,EVENT_RAFRAICHIR : CAPTION 30, "RAFRAICHIR" BUTTON 32 : TOP 32,85 : LEFT 32, 455 : CAPTION 32 , "CapsLock_Off" : ON_CLICK 32,LBL_FINDCAPSLOCK ' ---------------------------------- ' ---------------------------------- REM hauteur & largeur de la FORM ' ==================================== WIDTH 0,626 : HEIGHT 0,155 CAPTION 0 ,"Convertisseur ASCII" ON_KEY_UP 0 , LBL_FINDCAPSLOCK
' ---------------------------------- ' ----------------------------------- REM création du timer avec interval de 500ms ' ---------------------------------- TIMER 100 TIMER_INTERVAL 100,500 ON_TIMER 100,LBL_INIT END ' ---------------------------------- ' ---------------------------------- ' LABELS . & EVENT_BTN.............. ' ---------------------------------- '------------------------------------ LBL_INIT: INIT() RETURN
' ---------------------------------- LBL_FINDCAPSLOCK: ' prochainement un sendkey vers la touche capslock. SET_FOCUS 0 RETURN ' ---------------------------------- LBL_CONVERSION: X% = NUMBER_CLICK IF NUMERIC(CAPTION$(X%)) < 1 CAPTION X%, (ASC(CAPTION$(X%))) : SET_FOCUS 0 ELSE TEMP% = VAL(CAPTION$(X%)) CAPTION X%, CHR$(TEMP%) : SET_FOCUS 0 END_IF RETURN REM ============================================================================ EVENT_RAFRAICHIR: REMPLISSAGE() RETURN ' ---------------------------------- ' ---------------------------------- ' ---------------------------------- ' Routines .......................... ' ---------------------------------- SUB REMPLISSAGE() FOR X% = 1 to 26 CAPTION X%, MID$(MODE$,X%,1) : ON_CLICK X%,LBL_CONVERSION NEXT X% SET_FOCUS 0 END_SUB ' ---------------------------------- SUB INIT() REM INIT PROPRIETE CAPSLOCK AVEC DLL DE KLAUS ET CONSEIL DE YGERONIMI DLL_ON "KGF.dll" IF dll_call1("GetKeyboardState",20 )=2 MARK_ON 29 CAPTION 32, "CapsLock_On" MODE$ = MAJ$:REMPLISSAGE() ELSE MARK_ON 28 CAPTION 32, "CapsLock_Off" MODE$ = MIN$:REMPLISSAGE() END_IF DLL_OFF END_SUB ' ---------------------------------- A bientôt et merci pour l'aide. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Conversion ascii alphabet Dim 11 Jan 2015 - 19:19 | |
| Salut Fhoest Panoramic dispose de la fort utile l’instruction HINT. Je te laisse te documenter à son propos en consultant l’aide. Pour voir son effet, ajoute cette ligne à ton code après la ligne 34 - Code:
-
HINT x%, ASC(MID$(MODE$,X%,1)) Lance ton programme et pointe une lettre quelconque avec le curseur de la souris sans cliquer, et attends un tout petit peu : une info-bulle affichera le code ascii de la lettre. | |
| | | Fhoest
Nombre de messages : 97 Age : 48 Localisation : Nord Date d'inscription : 04/01/2015
| Sujet: Re: Conversion ascii alphabet Dim 11 Jan 2015 - 19:42 | |
| Génial Papydall, c'est en fait comme le ControlTipText en VB que j'utilise beaucoup. Je l'ai d'office intégrer au code. ce qui donne: - Code:
-
REM définition et instanciation variables ' ======================================= DIM MIN$,MAJ$,MODE$,X% MIN$ = "abcdefghijklmnopqrstuvwxyz" MAJ$ =upper$(min$) ' ---------------------------------- ' ---------------------------------- REM définition des LABELS ' ====================================== LABEL LBL_FINDCAPSLOCK,LBL_INIT ' ---------------------------------- ' ---------------------------------- REM code et propriété CONTAINER ' ====================================== CONTAINER 27 WIDTH 27, 610 HEIGHT 27 , 112 COLOR 27, 25,255,150 ' ---------------------------------- ' ---------------------------------- REM CASE à cochez minuscule ou majuscule ' ====================================== OPTION 28 : CAPTION 28, "Minuscule" : TOP 28 , 90 : LEFT 28, 200 : MARK_ON 28 MODE$ = min$ INACTIVE 28 OPTION 29 : CAPTION 29, "Majuscule" :TOP 29 , 90 : LEFT 29, 300 INACTIVE 29 ' ---------------------------------- ' ---------------------------------- REM création bouton alphabet ' ====================================== FOR X% = 1 to 26 BUTTON X% HINT X%, ASC(MID$(MODE$,X%,1)) CAPTION X%, MID$(MODE$,X%,1) IF X% >= 1 and X% =< 8 then LEFT X%, X% *75 - 70 : TOP X%,10 IF X% >= 9 and X% =< 16 LEFT X%, ((X%-8) *75) - 70 TOP X%, 35 END_IF IF X% >= 17 and X% =< 24 LEFT X%, ((X%-16)*75) - 70 TOP X%,60 END_IF IF X% => 25 LEFT X%, ((X%-24)*75) - 70 TOP X%,85 END_IF NEXT X% ' ----------------------------------
BUTTON 32 : TOP 32,85 : LEFT 32, 455 : CAPTION 32 , "CapsLock_Off" : ON_CLICK 32,LBL_FINDCAPSLOCK ' ---------------------------------- ' ---------------------------------- REM hauteur & largeur de la FORM ' ==================================== WIDTH 0,626 : HEIGHT 0,155 CAPTION 0 ,"Convertisseur ASCII" ON_KEY_UP 0 , LBL_FINDCAPSLOCK
' ---------------------------------- ' ----------------------------------- REM création du timer avec interval de 500ms ' ---------------------------------- TIMER 100 TIMER_INTERVAL 100,500 ON_TIMER 100,LBL_INIT END ' ---------------------------------- ' ---------------------------------- ' LABELS . & EVENT_BTN.............. ' ---------------------------------- '------------------------------------ LBL_INIT: INIT() RETURN
' ---------------------------------- LBL_FINDCAPSLOCK: ' prochainement un sendkey vers la touche capslock. SET_FOCUS 0 RETURN ' ---------------------------------- ' ---------------------------------- ' Routines .......................... ' ---------------------------------- SUB REMPLISSAGE() FOR X% = 1 to 26 CAPTION X%, MID$(MODE$,X%,1) NEXT X% SET_FOCUS 0 END_SUB ' ---------------------------------- SUB INIT() REM INIT PROPRIETE CAPSLOCK AVEC DLL DE KLAUS ET CONSEIL DE YGERONIMI DLL_ON "KGF.dll" IF dll_call1("GetKeyboardState",20 )=2 MARK_ON 29 CAPTION 32, "CapsLock_On" MODE$ = MAJ$:REMPLISSAGE() ELSE MARK_ON 28 CAPTION 32, "CapsLock_Off" MODE$ = MIN$:REMPLISSAGE() END_IF DLL_OFF END_SUB ' ---------------------------------- @+ j'ai commencer à intégrer le sendkey mais j'ai un peu de mal avec le Timer mis en place. ça viendra la solution existe. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: RE Dim 11 Jan 2015 - 20:17 | |
| Les bouton s' actualise selon la situation du clavier mais pas les hint.... | |
| | | Fhoest
Nombre de messages : 97 Age : 48 Localisation : Nord Date d'inscription : 04/01/2015
| Sujet: Re: Conversion ascii alphabet Dim 11 Jan 2015 - 21:19 | |
| ok MERCI Ygeronimi il faut changer le code: - Code:
-
SUB REMPLISSAGE() FOR X% = 1 to 26 CAPTION X%, MID$(MODE$,X%,1) HINT X%, ASC(MID$(MODE$,X%,1)) NEXT X% SET_FOCUS 0 END_SUB A+ | |
| | | Fhoest
Nombre de messages : 97 Age : 48 Localisation : Nord Date d'inscription : 04/01/2015
| Sujet: Re: Conversion ascii alphabet Jeu 29 Mar 2018 - 22:17 | |
| Bonsoir, je me suis replongé dans mon premier projet fou en panoramic et je me pose une question sur votre langage, y a til une possibilité de faire un Sendkey , si oui dans quelle cession je peux trouver ça et si pas de cession, avez vous un exemple pour moi s'il vous plait. Merci et à bientôt. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Conversion ascii alphabet Jeu 29 Mar 2018 - 23:54 | |
| Oui, à l'aide de KGF.dll. Cela suppose un peu d'expérience avec Panoramic, cependant...
En attendant, tu peux regarder l'aide en ligne de KGF.dll, accessible via le lien dans ma signature. Tu cherches dans la rubrique "Sommaire", la section "envoi de touches". | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Conversion ascii alphabet Ven 30 Mar 2018 - 0:41 | |
| Salut Fhoest. Je suppose que tu veux simuler l’appui d’une touche ou combinaison de touches ? Si c’est ça ce que tu demandes, tu trouveras ton bonheur (je l’espère bien !) en cliquant sur ce lien | |
| | | Fhoest
Nombre de messages : 97 Age : 48 Localisation : Nord Date d'inscription : 04/01/2015
| Sujet: Re: Conversion ascii alphabet Ven 30 Mar 2018 - 21:13 | |
| Salut, merci à tous les deux, j'ai essayé d'utiliser le code de Papydall, l'exemple fonctionne bien sur le Printscreen par contre sur le capslock j'ai un peu de mal, mais je suis sur pc portable . Est ce la cause de mon souci sur le 20 à mettre sur cette appel de routine Appui_touche(20) même avec l'exemple complet déposé de Papydall ça ne fonctionne pas. @ Klaus, j'utilise déjà la dll KFG, mais avez vous une documentation complémentaire de cette Dll sur l'appel de sendkey. j'ai tenté de mettre dll_call1("SetKeyboardState",20) en vain mais cela était au piff. donc je suppose que ç'est normal que ça ne fonctionne pas. Je ne suis pas pressé,vous l'avez remarqué mon dernier message date de début 2015. en tout cas merci pour votre soutenance. A bientôt. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Conversion ascii alphabet Ven 30 Mar 2018 - 21:31 | |
| Normalement, ça devrait fonctionner comme ça: - Code:
-
dim res% dll_on "KGF.dll" res% = dll_call1("GetKeyboardState",20) message "Etat avant="+str$(res%) res% = dll_call2("SetKeyboardState",20,1) : ' enfoncer la touche Verr. Num. pause 200 res% = dll_call2("SetKeyboardState",20,0) : ' relâcher la touche Verr. Num. res% = dll_call1("GetKeyboardState",20) message "Etat après="+str$(res%) end Mais je constate qu'il n'en est rien. C'est un bug. Je vais regarder ce qui se passe. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Conversion ascii alphabet Ven 30 Mar 2018 - 21:38 | |
| Par contre, ceci fonctionne. Active une des deux lignes avec SendSingleKey et rearde le résultat: - Code:
-
dim res% dll_on "KGF.dll"
' res% = dll_call5("SendSingleKey",handle(0),20,0,0,0) : ' changer l'état de Verr. Maj. res% = dll_call5("SendSingleKey",handle(0),144,0,0,0) : ' changer l'état de Verr. Num. end | |
| | | Fhoest
Nombre de messages : 97 Age : 48 Localisation : Nord Date d'inscription : 04/01/2015
| Sujet: Re: Conversion ascii alphabet Ven 30 Mar 2018 - 22:20 | |
| Cool, enfin terminer. jusqu'à ma prochaine idée. code complet: - Code:
-
REM définition et instanciation variables ' ======================================= DIM MIN$,MAJ$,MODE$,X% ,VerrMaj% MIN$ = "abcdefghijklmnopqrstuvwxyz" MAJ$ =upper$(min$) ' ---------------------------------- ' ---------------------------------- REM définition des LABELS ' ====================================== LABEL LBL_FINDCAPSLOCK,LBL_INIT ' ---------------------------------- ' ---------------------------------- REM code et propriété CONTAINER ' ====================================== CONTAINER 27 WIDTH 27, 610 HEIGHT 27 , 112 COLOR 27, 25,255,150 ' ---------------------------------- ' ---------------------------------- REM CASE à cochez minuscule ou majuscule ' ====================================== OPTION 28 : CAPTION 28, "Minuscule" : TOP 28 , 90 : LEFT 28, 200 : MARK_ON 28 MODE$ = min$ INACTIVE 28 OPTION 29 : CAPTION 29, "Majuscule" :TOP 29 , 90 : LEFT 29, 300 INACTIVE 29 ' ---------------------------------- ' ---------------------------------- REM création bouton alphabet ' ====================================== FOR X% = 1 to 26 BUTTON X% HINT X%, ASC(MID$(MODE$,X%,1)) CAPTION X%, MID$(MODE$,X%,1) IF X% >= 1 and X% =< 8 then LEFT X%, X% *75 - 70 : TOP X%,10 IF X% >= 9 and X% =< 16 LEFT X%, ((X%-8) *75) - 70 TOP X%, 35 END_IF IF X% >= 17 and X% =< 24 LEFT X%, ((X%-16)*75) - 70 TOP X%,60 END_IF IF X% => 25 LEFT X%, ((X%-24)*75) - 70 TOP X%,85 END_IF NEXT X% ' ----------------------------------
BUTTON 32 : TOP 32,85 : LEFT 32, 455 : CAPTION 32 , "CapsLock_Off" : ON_CLICK 32,LBL_FINDCAPSLOCK ' ---------------------------------- ' ---------------------------------- REM hauteur & largeur de la FORM ' ==================================== WIDTH 0,626 : HEIGHT 0,155 CAPTION 0 ,"Convertisseur ASCII" ON_KEY_UP 0 , LBL_FINDCAPSLOCK
' ---------------------------------- ' ----------------------------------- REM création du timer avec interval de 500ms ' ---------------------------------- TIMER 100 TIMER_INTERVAL 100,500 ON_TIMER 100,LBL_INIT END
' ---------------------------------- ' ---------------------------------- ' LABELS . & EVENT_BTN.............. ' ---------------------------------- '------------------------------------ LBL_INIT: INIT() RETURN
' ---------------------------------- LBL_FINDCAPSLOCK:
' prochainement un sendkey vers la touche capslock. ' (merci à klaus et PapyDall 30/03/2018)
dll_on "KGF.dll" VerrMaj% = dll_call5("SendSingleKey",handle(0),20,0,0,0) : ' changer l'état de Verr. Maj. dll_off
SET_FOCUS 1
RETURN
' ---------------------------------- ' ---------------------------------- ' Routines .......................... ' ---------------------------------- SUB REMPLISSAGE() FOR X% = 1 to 26 CAPTION X%, MID$(MODE$,X%,1) HINT X%, ASC(MID$(MODE$,X%,1)) NEXT X% SET_FOCUS 0 END_SUB
' ---------------------------------- SUB INIT() REM INIT PROPRIETE CAPSLOCK AVEC DLL DE KLAUS ET CONSEIL DE YGERONIMI DLL_ON "KGF.dll" IF dll_call1("GetKeyboardState",20 )=2 MARK_ON 29 CAPTION 32, "CapsLock_On" MODE$ = MAJ$:REMPLISSAGE() ELSE MARK_ON 28 CAPTION 32, "CapsLock_Off" MODE$ = MIN$:REMPLISSAGE() END_IF DLL_OFF END_SUB ' ---------------------------------- désolé tout de même d'avoir soulevé un souci de la Dll réponse : Ven 30 Mar 2018 - 21:31 de Klaus. Je viens juste ce matin du 31/03. de m'apercevoir que l'éditeur de code panoramic contient les instructions de conversion ASCII et code de touche dans les outils. (CHUI NULL...) A +, grand merci. | |
| | | Contenu sponsorisé
| Sujet: Re: Conversion ascii alphabet | |
| |
| | | | Conversion ascii alphabet | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |