TreeView en Unicode ou UTF8: Pb d'affichage

jobtunisieyasser Messages postés 123 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 23 mars 2007 - 10 juil. 2006 à 14:36
u147078 Messages postés 8 Date d'inscription mercredi 20 octobre 2004 Statut Membre Dernière intervention 14 mars 2011 - 14 mars 2011 à 16:20
Je cherche à afficher des chaines de caractére international dans treeView

Comme des caractére arabe ou chinois

mais je n'arrive pas

j'ai essayer tous les code dans le net

no one fonctionne

Si qlq l'a déja fait,

qui me répond svp

Merci @++

@_______=-[red]Jobtunisie/red-=_______@

 |..................NOURON ALA NOUR.......................|
A voir également:

12 réponses

Polack77 Messages postés 1095 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
9 avril 2008 à 16:45
Bonjour
A tu trouvé la réponse à ton problème ? J'ai le même objectif que toi à l'époque : affiché du texte quel que soit le jeux de caractère utilisé (soit pouvoir affiché autant un 'é' qu'un '?' (carac cyrillique) ou un carac chinois/japonais)

Merci par avance

Amicalement
Pensez "Réponse acceptée"
0
Polack77 Messages postés 1095 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
9 avril 2008 à 16:46
lol, le carac cyrillique que j'ai collé n'es pas passé dans le forum

Amicalement
Pensez "Réponse acceptée"
0
u147078 Messages postés 8 Date d'inscription mercredi 20 octobre 2004 Statut Membre Dernière intervention 14 mars 2011
9 mars 2011 à 13:29
Bonjour,

Je cherche également à résoudre ce type de problème. Afficher des caracteres Unicode (Cyrillique et Choinois) dans un controle type TreeView et ListView.
Je n'ai trouvé, pour le moment, qu'une solution payante UnitoolBox http://www.iconico.com/UniToolbox2/
J'ai récuperé la verson d'essai et en effet cela fonctionne bien.
Est-ce que quelqu'un connaitrait une solution free pour répondre à ce besoin ?

D'avance merci.
0
Polack77 Messages postés 1095 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
10 mars 2011 à 10:19
Oui j'avais fini par trouver plusieurs de façon de le faire gratuitement :
- Alors 1ère solution tu joue sur le Charset des objet pour choisir l'alphabet à afficher (mais du coup un alphabet à la fois)
- Seconde solution écrire par API : CreateFontA (crée une nouvelle police), SelectObject (active la police crée et retourne la police "précédemment" active), TextOutW (écrit du texte en Unicode, attention tu à besoin d'un hdc pas d'un handle avec cette API ;)), DeleteObject (permet de détruire la police crée)
Déclaration des API :
Private Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal nHeight As Long, ByVal nWidth As Long, ByVal nEscapement As Long, ByVal nOrientation As Long, ByVal fnWeight As Long, ByVal fdwItalic As Long, ByVal fdwUnderline As Long, ByVal fdwStrikeOut As Long, ByRef fdwCharSet As Long, ByRef fdwOutputPrecision As Long, ByRef fdwClipPrecision As Long, ByRef fdwQuality As Long, ByRef fdwPitchAndFamily As Long, ByVal lpszFace As String) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function TextOutUnicode Lib "gdi32" Alias "TextOutW" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

En gros : (Tu crée une police puis l'active en sauvegardant la police active, étape optionnelle mais permet de tourner le texte, soit l'afficher à 45° par exemple ;)) Tu écrit du texte sur une surface avec "TextOutW" (ATTENTION dans ce cas il faut écrire dans l'événement Paint de ton control), (tu réactive l'ancienne police et supprime la nouvelle)

- 3ème solution : http://www.vbfrance.com/codes/CONTROLES-STYLE-XP-16-USERCONTROLS-LISTBOX-OPTION-FRAME_42726.aspx
- 4ème solution : les controls Form2 de Ms : "Microsoft Forms 2.0 Object Libray"

Pour tester tout sa tu peut utiliser le carac : ChrW$(20013) par exemple ;)

Bonne prog

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polack77 Messages postés 1095 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
11 mars 2011 à 09:21
Alors à tu résolut ton problème u147078 ?

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
u147078 Messages postés 8 Date d'inscription mercredi 20 octobre 2004 Statut Membre Dernière intervention 14 mars 2011
11 mars 2011 à 10:47
Bonjour Polack77

Je n'ai pas encore eu le temps de regarder tes propositions, mais sans aucun doute je vais m'y pencher semaine prochaine.
Je te tiens au courant des avancées...

Merci à toi.
0
u147078 Messages postés 8 Date d'inscription mercredi 20 octobre 2004 Statut Membre Dernière intervention 14 mars 2011
14 mars 2011 à 11:41
Bonjour Polack77 ,

Alors,
- la 1ere solution ne convient pas, mes utilisateurs peuvent saisir du texte dans des charset differents (LAtin, Cyrillique...)
- Je n'ai pas encore testé la seconde solution
- La 3eme solution, j'ai télécharger le vbp et fait quelques tests, le cyrillique ne semble pas bien supporté dans les controles VK... notamment dans les folder Tree. En plus je n'ai vu ni TreeView ni ListView.
- La 4eme solution, j'ai chargé la dll FM20.dll correspondant à la lib "Microsoft Forms 2.0 Object Libray", il n'y a pas non plus de TreeView ou de List View mais uniquement les controles std. Pour ceux-là, en effet le cyrillique est bien affiché.

Donc, ... je suis toujours un peu embeté, je vais regarder la 2eme solution que tu me propose mais j'avoue etre un peu sec, si tu as quelques exemples de codes dessus ça m'arrangerai bien.
Et si j'ai raté des trucs sur l'utilisation de FM20.dll, si toi tu as pu utiliser cette library avec des TreeView et ListView contenant du cyrillique.... plus d'infos sont aussi les bienvenus.

Merci bien à toi dans tous les cas de ton interet pour mon probleme.
0
Polack77 Messages postés 1095 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
14 mars 2011 à 12:29
Ha oui c'est vrais que je n'est pas vérifier si les ListView & TreeView étais disponible dzl

Heee oula la 2ème solution est franchement la plus complexe à mettre en place (mais bon perso c'est le choix que j'ai fait, je crée tout mes controles moi même en utilisant ces APIs et du coup je peut faire pas mal de choses )

Pour l'exemple :
http://www.vbfrance.com/codes/LABEL-UNICODE_48429.aspx
Ce n'est pas exactement comme sa que je fait, mais les fonctions que j'ai développés appartiennent à ma boite donc je ne peut pas te les donner (même si dans le font sa ne me dérangerais pas trop personnellement)

A ta place :
- Créer un nouveau control contenant un treeview classique et partageant les mêmes propriétés/procédures/événements
- Effacer tous le texte de tous les nodes et sauvegarder ce texte dans d'autres variables (ou passer la police du treeview à la même couleur que la couleur de font peut aussi être une solution )
- Écrire les textes effacés (ou masquer) dans l'évènement pain du nouveau control avec les API

Attention c'est quand même plus facile à dire qu'à faire

Dernière solution (mais sa j'ai jamais fait) : créer un objet com avec le VB.NET (express doit pouvoir le faire) partagent ce contrôle (sa se test mais je n'est aucune idée de la difficulté pour faire ce genre de chose)

Bon courage

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
u147078 Messages postés 8 Date d'inscription mercredi 20 octobre 2004 Statut Membre Dernière intervention 14 mars 2011
14 mars 2011 à 13:04
Merci, je regarde ça.
0
u147078 Messages postés 8 Date d'inscription mercredi 20 octobre 2004 Statut Membre Dernière intervention 14 mars 2011
14 mars 2011 à 13:35
J'ai juste un souci, le developpement existant que je dois "Russifier" est en VBA sous un progiciel DS.
Les controles utilisateurs (ctl) ne peuvent etre ni créés, ni importés... faut que je cherche encore... Grrrr ....
0
Polack77 Messages postés 1095 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
14 mars 2011 à 15:58
Tu ne peut même pas importer d'OCX existant ???

Si en effet tu ne peut pas, même un contrôle payant ne te sortiras pas de la .... Comment dire sa en "politiquement correct"
Enfin, je rie mais c'est pas drôle dans le font

Par contre si tu peut utiliser un OCX (et/ou tbl/dll) alors tu peut créer un contrôle avec VB6 (ou importer du VB.NET ), le compiler en OCX (ou en objet COM, soit un tbl + dll il me semble) et l'utiliser dans ton programme final

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
u147078 Messages postés 8 Date d'inscription mercredi 20 octobre 2004 Statut Membre Dernière intervention 14 mars 2011
14 mars 2011 à 16:20
En effet vu comme ça.... tu as raison
Je fais l'OCX sous VB6 puis Reference de l'OCX dans mon VBA....

Ben oui... élémentaire....je reflechi pas trop en ce moment...
0
Rejoignez-nous