Caractère Unicode dans ListBox

Signaler
Messages postés
917
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 novembre 2021
-
Messages postés
917
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 novembre 2021
-
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

Messages postés
16559
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
4 décembre 2021
577
Bonjour

Et si tu essayes ChrW(65516) ?
Messages postés
917
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 novembre 2021
2
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 ?
Messages postés
16559
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
4 décembre 2021
577
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?
Messages postés
917
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 novembre 2021
2
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 ?
Messages postés
16559
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
4 décembre 2021
577
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
Messages postés
917
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 novembre 2021
2
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.
Messages postés
16559
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
4 décembre 2021
577
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.
Messages postés
917
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 novembre 2021
2
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 !
Messages postés
16559
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
4 décembre 2021
577
Ha cela voudrait il dire que vb6 n’affiche que l’ascii?
Messages postés
917
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 novembre 2021
2
à quoi servirait alors la fonction StrConv(string, vbUnicode) ?
Messages postés
16559
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
4 décembre 2021
577
Oui tu as raison.
Je ne sais pas t’en dire plus
Messages postés
917
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 novembre 2021
2
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 ?
Messages postés
2492
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
3 décembre 2021
141
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 .

Messages postés
212
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
15 novembre 2021
7
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...
Messages postés
917
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 novembre 2021
2
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.
Messages postés
212
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
15 novembre 2021
7
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.
Messages postés
917
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 novembre 2021
2 >
Messages postés
212
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
15 novembre 2021

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.
Messages postés
212
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
15 novembre 2021
7 >
Messages postés
212
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
15 novembre 2021

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.
Messages postés
917
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 novembre 2021
2 >
Messages postés
212
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
15 novembre 2021

"Désolé pour notre impossibilité de t'aider."
Merci pour avoir essayé.
Messages postés
2492
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
3 décembre 2021
141
Bonjour Herve_be
Désolé pour l'erreur