[..] Send + combinaisons
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[..] Send + combinaisons
Bonjour,
Lorsque je souhaite écrire dans un edit en langue grecque, je passe dans le clavier adéquat. De nombreuses lettres sont accentuées, parfois doublement. J'obtiens ces accents ou ces combinaisons d'accents par des suites ou des combinaisons de touches. Pour m'éviter ce travail fastidieux, je souhaite tirer parti de la fonction Send.
Par exemple, pour obtenir la lettre ἅ (deux accents sur la lettre alpha) je tape la suite : touche [ç] qui affiche le premier accent, puis touche [ù] qui affiche le second accent, puis touche [a].
Pour obtenir la lettre ῃ , je tape la combinaison [Ctrl] + [Alt], puis la touche et enfin la touche [h].
J'ai tenté les codes ci-dessous, mais sans succès :
GUICtrlSetData($MonEdit, Send("ç" & "ù" & "a"), 1)
GUICtrlSetData($MonEdit, Send("{LCTRL}+{LALT} & "i" & "h"), 1)
D'évidence, je ne sais pas faire. Pourriez-vous me guider ? Je vous remercie.
Lorsque je souhaite écrire dans un edit en langue grecque, je passe dans le clavier adéquat. De nombreuses lettres sont accentuées, parfois doublement. J'obtiens ces accents ou ces combinaisons d'accents par des suites ou des combinaisons de touches. Pour m'éviter ce travail fastidieux, je souhaite tirer parti de la fonction Send.
Par exemple, pour obtenir la lettre ἅ (deux accents sur la lettre alpha) je tape la suite : touche [ç] qui affiche le premier accent, puis touche [ù] qui affiche le second accent, puis touche [a].
Pour obtenir la lettre ῃ , je tape la combinaison [Ctrl] + [Alt], puis la touche et enfin la touche [h].
J'ai tenté les codes ci-dessous, mais sans succès :
GUICtrlSetData($MonEdit, Send("ç" & "ù" & "a"), 1)
GUICtrlSetData($MonEdit, Send("{LCTRL}+{LALT} & "i" & "h"), 1)
D'évidence, je ne sais pas faire. Pourriez-vous me guider ? Je vous remercie.
- walkson
- Modérateur
- Messages : 1037
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: [..] Send + combinaisons
Bonjour,
Pas sur que ma réponse vous convienne mais il me semble que l'on peut y arriver en passant par l'unicode ChrW()
Voir l'exemple de l'aide
Pas sur que ma réponse vous convienne mais il me semble que l'on peut y arriver en passant par l'unicode ChrW()
Voir l'exemple de l'aide
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: [..] Send + combinaisons
Ne sachant pas me servir de la fonction Send, je vais me rabattre sur la fonction ChrW(). Les combinaisons d'accents étant nombreuses, je vais les regrouper par voyelle dans des combos.
Je vous remercie.
Je vous remercie.
- orax
- Modérateur
- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [..] Send + combinaisons
Sinon il suffirait d'enregistrer le fichier .au3 en UTF-8 pour pouvoir y écrire des caractères grecs :
File > Encoding > UTF-8 with BOM
.De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Re: [..] Send + combinaisons
Le souci n'est pas l'encodage du fichier. Mon programme est bien encodé UTF8. Ce que je souhaiterais, c'est écrire les caractères accentués grecs (ils sont terribles : au pire, double accent sur une voyelle, plus i souscrit, par exemple. Voyez :ἢ|ἣ|ἤ|ἥ|ἦ|ἧ|ῃ|ῄ|ῂ|ῇ|ᾐ|ᾑ|ᾒ|ᾓ|ᾔ|ᾕ|ᾖ|ᾗ|ᾘ|ᾙ|ᾚ|ᾛ|ᾜ|ᾝ|ᾞ|ᾟ
Pour obtenir ces lettres accentuées, je dois taper une suite de touches. J'aurais aimé créer un bouton dans mon programme qui presse la série de touches créant les accents, puis taper moi-même la voyelle.
Ainsi, en pressant le bouton, la fonction Send("ç" & "ù" & {LCTRL} + {LALT} + "i") mémorise les accents et le "i" souscrit. Il ne me reste plus qu'à taper η pour que les accents s'affichent au dessus et le "i" au dessous de la lettre η .
Cela ne fonctionnant pas, je demandais où était mon erreur. La touche "ç" crée le premier accent (qu'on appelle "esprit" en grec). La touche "ù" affiche le second accent (accent aigu). La combinaison [CTRL+ALT+i] affiche le "i" (iota en grec) dit "souscrit.
Pour obtenir ces lettres accentuées, je dois taper une suite de touches. J'aurais aimé créer un bouton dans mon programme qui presse la série de touches créant les accents, puis taper moi-même la voyelle.
Ainsi, en pressant le bouton, la fonction Send("ç" & "ù" & {LCTRL} + {LALT} + "i") mémorise les accents et le "i" souscrit. Il ne me reste plus qu'à taper η pour que les accents s'affichent au dessus et le "i" au dessous de la lettre η .
Cela ne fonctionnant pas, je demandais où était mon erreur. La touche "ç" crée le premier accent (qu'on appelle "esprit" en grec). La touche "ù" affiche le second accent (accent aigu). La combinaison [CTRL+ALT+i] affiche le "i" (iota en grec) dit "souscrit.
- orax
- Modérateur
- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [..] Send + combinaisons
Ce que je voulais dire c'est qu'au lieu d'utiliser ChrW(), on peut écrire directement le caractère dans le code (c'est peut-être plus pratique).
Par exemple, pour afficher la lettre alpha, les deux écritures ci-dessous sont équivalentes.
Par exemple, pour afficher la lettre alpha, les deux écritures ci-dessous sont équivalentes.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Re: [..] Send + combinaisons
Oui, c'est ce que j'ai fait. Mais cela me fait créer une multitude de boutons (une par lettre accentuée). En grec, les accents se combinent, ce qui explique leur nombre effrayant. Du coup, j'ai regroupé les lettres accentuées dans des combos (un par voyelle). Mais la liste des valeurs dans les listes déroulantes est très longue. J'ai l'impression que quand on a déroulé la liste, et recherché la bonne lettre accentuée, on ne gagne pas de temps.
Re: [..] Send + combinaisons
Une autre solution plus économe en temps : les boutons radio. Je teste...
Re: [..] Send + combinaisons
Pour en revenir à la fonction Send qui m'épargnerait de nombreux controles (que ce soit des boutons (le pire), des combos, ou des radios) , je crois comprendre pourquoi cette fonction Send ne fonctionne pas :
Par un clic sur un bouton, j'envoie la fonction Send("^!i") sensée combiner les touches CTRL+ALT+i précédant la frappe de la voyelle sur le clavier. Puis je reviens à l'édit par un clic dans l'espace de celui-ci afin de lui redonner le focus avant d'entrer ma voyelle. Je pense que ce clic est de trop.
Par un clic sur un bouton, j'envoie la fonction Send("^!i") sensée combiner les touches CTRL+ALT+i précédant la frappe de la voyelle sur le clavier. Puis je reviens à l'édit par un clic dans l'espace de celui-ci afin de lui redonner le focus avant d'entrer ma voyelle. Je pense que ce clic est de trop.