Probleme D'affichage Sur Un Textbox

yousseFcb
Probleme D'affichage Sur Un Textbox

bonjour
je travaille sur une application de gestion de demande d acte d'état civil en fait c'est un ecran tactile qui tourne sous VB6 et sql server
Dans cet ecran se trouve un clavier numerique , un clavier arabe et francais et un autre pour pour les slaches et les signes
bref le probleme qui se pose est que quand j'ecrit dans le meme textbox les lettre arabe et francais et des fois un slache, l'ordre d'enchainement des lettres change
exemple
182/S /Ã ( Ã etant une lettre en arabe )
alors que normalement j avais ecrit la lettre en arabe au debut
pourriez vous m'aider à trouver une solution pour ecrire sur un textbox sans diferentier l arabe le francais et les signes

fredericmazue

Quote:
sans diferentier l arabe le francais et les signes

Je dois avouer que je ne comprends pas très bien la question.
Que veut tu dire par "sans différentier". Parce que le français et l'arabe ça s'écrit en sens contraire. C'est quand même différent par la force des choses.
yousseFcb

oui tu as parfaitement raison mais bon en réalité tout s'ecrit normalement sur le textbox , le probleme se pose vraiment quand j'ecrit un chiffre ou un slache, si tu veux tu peux essayer il te suffit de créer 4 bouttons avec des tags differents un pour une lettre en francais ,
l autre en arabe ainsi que deux bouttons pour les chiffres et un slach .
essaye d'ecrire differentes combinaisons et tu veras que se n ai pas si evident
et pour te dire ca fait le 4eme forum que je solicite
j espere trouver la solution ici :wink:

fredericmazue

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 ?

Quote:
l autre en arabe

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.

yousseFcb

merci pour ton aide je vais suivre ta piste :wink: