Caractère Unicode dans ListBox

Herve_be Messages postés 957 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 5 août 2022 - 13 nov. 2021 à 15:40
Herve_be Messages postés 957 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 5 août 2022 - 15 nov. 2021 à 21:13
Bonjour,
Je voudrais utiliser des caractères Unicode, notamment ↓ et ↑ dans une listbox.
Pour ce faire j'utilise leurs valeurs ChrW(&HFFEC) et ChrW(&HFFEA) mais j'obtiens un point d'interrogation.
Une solution ?

16 réponses

Whismeril Messages postés 18024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 7 décembre 2022 618
13 nov. 2021 à 17:32
Bonjour

Et si tu essayes ChrW(65516) ?
0
Herve_be Messages postés 957 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 5 août 2022 2
Modifié le 13 nov. 2021 à 18:19
Bonsoir,
Je n'avais pas essayé, le résultat est le même, ce qui me semble normal puisque &HFFEC = 65516.
Je pense que la raison doit plutôt venir du fait que ce caractère ne se trouve pas dans le set.
Dans cette ListBox j'utilise la fonte Courrier New; j'ai besoin d'une fonte non proportionnelle afin d'aligner les colonnes, exemple



Je voudrais utiliser le flèches haut/bas pour indiquer que la valeur de la colonne Eclairement est trop élevée ou trop faible.
Si je copie ↓ ou ↑ et le colle dans l'éditeur VB6 j'obtiens aussi ?
0
Whismeril Messages postés 18024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 7 décembre 2022 618
13 nov. 2021 à 18:41
ce qui me semble normal puisque &HFFEC = 65516. </bloc>
Avec windows, on ne sait jamais ;).

<block> Je pense que la raison doit plutôt venir du fait que ce caractère ne se trouve pas dans le set.

Pour une fois que je ne te dis pas que vb6 est trop vieux….
Ce caractère fait partie de la version 1.1 qui est parue en 1993, donc on pourrait penser que cette version est intégrée à VB.

Si tu essayes avec d’autres caractères ajoutés avec la version 1.1 ça donne quoi?
0
Herve_be Messages postés 957 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 5 août 2022 2
Modifié le 14 nov. 2021 à 09:45
Pour une fois que je ne te réponds pas que migrer vers un autre langage serait beaucoup trop fastidieux ...

J'utilise Visual Basic Version 6.0 © 1998
Quels sont les autres caractères ajoutés dans la version 1.1 ?
0

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

Posez votre question
Whismeril Messages postés 18024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 7 décembre 2022 618
14 nov. 2021 à 10:09
Je pense que pour le savoir, il faut jouer au jeu des différences....

https://everything2.com/title/Unicode+1.1

https://everything2.com/title/Unicode+1.0
0
Herve_be Messages postés 957 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 5 août 2022 2
Modifié le 14 nov. 2021 à 10:47
Les 2 caractères que je souhaite utiliser sont en effet présent dans Unicode 1.1 et pas dans 1.0.
Ceci n'explique pas pourquoi ils n'apparaissent pas dans VB6.
0
Whismeril Messages postés 18024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 7 décembre 2022 618
14 nov. 2021 à 11:02
Si tu en testes d’autres et qu’ils ne fonctionnent pas non plus, alors on pourrait être tentés de conclure que vb6 n’est pas compatible avec unicode 1.1, même si cette version est antérieure de 6 ans à vb6.
0
Herve_be Messages postés 957 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 5 août 2022 2
14 nov. 2021 à 13:10
J'ai essayé StrConv(ChrW(&HFFEC), vbUnicode)
j'obtiens bien 16 bits mais la listbox l'affiche ìÿ
en d'autres termes au lieu d'afficher un caractère unicode 16 bits ↓ il affiche 2 caractères 8 bits !
0
Whismeril Messages postés 18024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 7 décembre 2022 618
14 nov. 2021 à 13:29
Ha cela voudrait il dire que vb6 n’affiche que l’ascii?
0
Herve_be Messages postés 957 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 5 août 2022 2
14 nov. 2021 à 14:44
à quoi servirait alors la fonction StrConv(string, vbUnicode) ?
0
Whismeril Messages postés 18024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 7 décembre 2022 618
14 nov. 2021 à 14:48
Oui tu as raison.
Je ne sais pas t’en dire plus
0
Herve_be Messages postés 957 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 5 août 2022 2
14 nov. 2021 à 15:38
Peut-être quelqu'un d'autre a-t-il une réponse à ma question qui reste
comment afficher un Caractère Unicode dans une ListBox ?
0
vb95 Messages postés 3362 Date d'inscription samedi 11 janvier 2014 Statut Non membre Dernière intervention 7 décembre 2022 163
Modifié le 14 nov. 2021 à 18:03
Bonjour à vous deux
La fonction StrConv traduit une String d'une certain codage en un autre codage .
Exemple = une chaine de caractères Ascii qui sera traduite en Unicode .
Mais là nous ne sommes uniquement au niveau des variables .
Utilisée pour traduire des fichiers en Ascii en Unicode par exemple .
Par contre la Listview en VB6 est un contrôle et d'après certaines informations elle gère très mal les caractères spéciaux .
Et un sujet du forum en parle déjà : https://codes-sources.commentcamarche.net/forum/affich-10089008-caracteres-unicode
Et l'auteur se reconnaîtra !
D'autres sujets intéressants : https://codes-sources.commentcamarche.net/forum/affich-10032675-unicode-dans-un-listview et ici aussi : https://www.vbforums.com/showthread.php?765177-RESOLVED-How-to-set-text-with-Unicode

Mais sans VB6 difficile d'explorer plus loin pour ma part .

0
JeuDuTaquin Messages postés 237 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 15 septembre 2022 7
15 nov. 2021 à 03:35
Salut Hervé,

Tu t'embête si ton caractère est seul dans une colonne de ta "listview" !

Traite le en mode graphique 8x8 dans une listimage que tu assigneras à ta listview...

Et en plus, tu pourras mettre des couleurs et des symboles plus représentatifs...
0
Herve_be Messages postés 957 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 5 août 2022 2
15 nov. 2021 à 09:19
Bonjour,
Je n'utilise pas une ListView mais une ListBox.
L'utilisation d'une ListView impliquerait de revoir complètement le code de remplissage de la ListBox.
0
JeuDuTaquin Messages postés 237 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 15 septembre 2022 7
Modifié le 15 nov. 2021 à 17:37
Salut Hervé,
Pas de reprogrammation, car tu peux garder ta listbox en dehors de la fenêtre d'affichage (ou la masquer), et faire un miroir en copiant tes infos (For each...) dans la listview (mode lvwreport) en déactivant tout et en une seule colonne.
De cette façon, tu peux faire un filtre d'affichage, la marque, puissance, technologie... en piochant chaque ligne dans ton ListBox, et en les copiant dans ta listview.
0
Herve_be Messages postés 957 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 5 août 2022 2 > JeuDuTaquin Messages postés 237 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 15 septembre 2022
15 nov. 2021 à 18:33
Merci mais c'est quand même un peu compliqué juste pour avoir la possibilité d'afficher 2 caractères ↓ et ↑.
Je pense que je vais seulement utiliser < et > ou simplement - et + à la place.
0
JeuDuTaquin Messages postés 237 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 15 septembre 2022 7 > JeuDuTaquin Messages postés 237 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 15 septembre 2022
15 nov. 2021 à 19:37
ET effectivement, il semble que les caractères ListView et ListBox sont adressés en 8bits (de 0 à 255) quelque-soit la police utilisée.
Afficher un caractère spécial dans une ligne est donc impossible à mon avis.
Pour accéder aux caractères spéciaux, il faut utiliser une RicheTextBox, donc en mode texte et faire une détection de lignes par rapport à la position du curseur... ce qui ne simplifie pas les choses.
Ton cas semble difficile à résoudre simplement, sans faire d'appel direct à l'OCX et placer des patchs graphiques en superposition des caractères incompris (fond de la ligne avec le caractère dessiné en mode graphique, et le texte en avant plan en "paste OR" reconstruit hors zone de travail).
Donc, ne plus traiter du texte, mais des images remplies du texte et du caractère spécial... La création d'une légende "#" = dépassement... te prendra moins de temps.
Désolé pour notre impossibilité de t'aider.
0
Herve_be Messages postés 957 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 5 août 2022 2 > JeuDuTaquin Messages postés 237 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 15 septembre 2022
15 nov. 2021 à 21:13
"Désolé pour notre impossibilité de t'aider."
Merci pour avoir essayé.
0
vb95 Messages postés 3362 Date d'inscription samedi 11 janvier 2014 Statut Non membre Dernière intervention 7 décembre 2022 163
15 nov. 2021 à 12:32
Bonjour Herve_be
Désolé pour l'erreur
0