[..] Send + combinaisons

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

[..] Send + combinaisons

#1

Message par GMH »

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.
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1037
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Send + combinaisons

#2

Message par walkson »

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
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Send + combinaisons

#3

Message par GMH »

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.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Send + combinaisons

#4

Message par orax »

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)
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Send + combinaisons

#5

Message par GMH »

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.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Send + combinaisons

#6

Message par orax »

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.
GUICtrlSetData($MonEdit, ChrW(0x3B1))
GUICtrlSetData($MonEdit, "α")
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Send + combinaisons

#7

Message par GMH »

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.
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Send + combinaisons

#8

Message par GMH »

Une autre solution plus économe en temps : les boutons radio. Je teste...
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Send + combinaisons

#9

Message par GMH »

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.
Répondre