Je dois dire que je n'ai toujours pas bien saisi mais
Quote:
l'ordre d'enchainement des lettres change
Tu es sûr que ça, c'est n'est pas lié au sens d'écriture qui sont contraires ?
Mais comment je fais ça ?
Bon peu importe.
Voici mon avis. Quand tu "mélanges" les écriture, le système doit changer de fontes à la volée et donc de sens. Quand tu insères ton caractère arabe, automatiquement la propriété RightToLeft est commutée sur true je suppose, et ça te retourne *TOUT* le contenu du Textbox qui n'est pas conçu pour mélanger les sens d'écriture.
Je ne pense pas que ce comportement puisse être changé simplement. Peut être en modifiant la Wndproc du Textbox, je ne sais pas.
Mais pour moi ton problème vient de ce que tu emploies un contrôle de haut niveau (le Textbox) donc avec un comportement préfabriqué et sans doute même l'impossibilité de mélanger des fontes. Si je devais mélanger deux écritures, je le ferai dans une fenêtre toute simple, c'est à dire au plus bas niveau, donc je gérerai tout l'affichage avec sa Wndproc justement. Si tu gères tout, plus de comportement préfabriqué et tu dois pouvoir mélanger les écritures et les fontes. Mais évidemment ça oblique à écrire beaucoup de code.
En fait, j'ai déjà fait quelque chose de ce genre. Pour un développement j'ai eu à mélanger du texte anglais avec de l'oria (une langue indienne avec sa fonte à elle). Certes le sens de l'écriture était de la gauche vers la droite dans les deux cas, mais comme j'ai travaillé en dur (et en C++) dans une fenêtre au plus bas niveau, j'aurais bien pu écrire dans n'importe quel sens, même en diagonale. :D
Voilà ce que je peux te dire pour l'instant, dans la mesure où j'ai bien capté ton problème. J'espère quand même t'avoir donné une piste.
Je dois dire que je n'ai toujours pas bien saisi mais
Tu es sûr que ça, c'est n'est pas lié au sens d'écriture qui sont contraires ?
Mais comment je fais ça ?
Bon peu importe.
Voici mon avis. Quand tu "mélanges" les écriture, le système doit changer de fontes à la volée et donc de sens. Quand tu insères ton caractère arabe, automatiquement la propriété RightToLeft est commutée sur true je suppose, et ça te retourne *TOUT* le contenu du Textbox qui n'est pas conçu pour mélanger les sens d'écriture.
Je ne pense pas que ce comportement puisse être changé simplement. Peut être en modifiant la Wndproc du Textbox, je ne sais pas.
Mais pour moi ton problème vient de ce que tu emploies un contrôle de haut niveau (le Textbox) donc avec un comportement préfabriqué et sans doute même l'impossibilité de mélanger des fontes. Si je devais mélanger deux écritures, je le ferai dans une fenêtre toute simple, c'est à dire au plus bas niveau, donc je gérerai tout l'affichage avec sa Wndproc justement. Si tu gères tout, plus de comportement préfabriqué et tu dois pouvoir mélanger les écritures et les fontes. Mais évidemment ça oblique à écrire beaucoup de code.
En fait, j'ai déjà fait quelque chose de ce genre. Pour un développement j'ai eu à mélanger du texte anglais avec de l'oria (une langue indienne avec sa fonte à elle). Certes le sens de l'écriture était de la gauche vers la droite dans les deux cas, mais comme j'ai travaillé en dur (et en C++) dans une fenêtre au plus bas niveau, j'aurais bien pu écrire dans n'importe quel sens, même en diagonale. :D
Voilà ce que je peux te dire pour l'instant, dans la mesure où j'ai bien capté ton problème. J'espère quand même t'avoir donné une piste.