Page 1 sur 2
Problème d'affichage du symbole Euro € (AltGr+E) - résolu ?
Publié : jeu. 13/juil./2023 21:58
par cage
Bonsoir a tous,
Je rencontre un petit soucis pour faire apparaitre le symbole Euro € dans les menus d'une application qui fait 8095 lignes, indiqué par le compilateur.
Les menus sont très chargés (+ de mille menus).
Le symbole Euro est remplacé par un espace alors que si j'utilise les symboles dollar $ ou Livre £, ils sont bien affichés.
J'ai essayé avec plein de symboles exotiques, ils s'affichent tous correctement.
Je n'ai pas réussi a créer une application qui démontre la chose, mais le problème est bien là.
Avez-vous déjà rencontré ce soucis ?
Une idée du pourquoi de la chose.
Merci,
cage
Re: Problème d'affichage du symbole Euro € (AltGr+E)
Publié : ven. 14/juil./2023 10:08
par Marc56
Bonjour,
Le truc de base ? Fonte qui ne contient pas le symbole € ?
Ex:
Courier ne contient pas €, mais
Courier New oui
PS. 1000 menus ?

Re: Problème d'affichage du symbole Euro € (AltGr+E)
Publié : ven. 14/juil./2023 10:10
par Bmld76
Bonjour,
Sur MacOs, J'utilise le code € sans difficulté, donne un morceaux de code pour tester.
Re: Problème d'affichage du symbole Euro € (AltGr+E)
Publié : ven. 14/juil./2023 15:56
par cage
Bonjour,
@ Bmld76: Je n'arrive pas a reproduire le problème dans un code exemple.
@Marc56: Je pensais que tu avais mis le doigt sur le problème, mais non.
Je ne modifie pas la fonte par défaut de l'application, alors ça devrait fonctionner.
Petite question, comment savoir quelle fonte est utilisée par les menus de l'application et comment la modifier ?
Je précise que si je crée une application toute simple avec un menu, le symbole Euro s'affiche bien.
Donc, par défaut, PB se lance avec une fonte qui accepte le symbole Euro.
Dans l'application en question, j'ai environ 9000 menus.
Cette application liste entre autre chaque nom de série disponible et les affiche dans des sous menus correspondants a la première lettre du titre.
Une image est plus parlante qu'un grand discours.
La playlist affichée date un peu et me sert a peaufiner l'application.
cage

Re: Problème d'affichage du symbole Euro € (AltGr+E)
Publié : ven. 14/juil./2023 16:35
par Marc56
Hello,
J'ai envisagé que ce soit
#PB_Menu_ModernLook qui pose un problème, mais non, € s'affiche bien.
Tu créé des 9000 menus à l'avance ou dynamiquement ?
Si tu les créé tous à l'avance il y a peut-être un problème de mémoire ?
PS. On peut changer la fonte par défaut par exemple avec:
Code : Tout sélectionner
SetGadgetFont(#PB_Default, FontID(LoadFont(#PB_Any, "Consolas", 10)))
Mais ça ne change pas la fonte des menus.

Re: Problème d'affichage du symbole Euro € (AltGr+E)
Publié : ven. 14/juil./2023 17:02
par cage
Tous les menus sont créés dynamiquement car je ne sais pas les créer a l'avance.
J'utilise une procédure pour créer les menus, ainsi, si je change de playlist, je rappelle la procédure pour reconstruire le menu.
Un bout du code que j'utilise
Code : Tout sélectionner
#WinApp = 60
Enumeration Menus
#MenuApp
#MenuPopup
#MenuTray
EndEnumeration
Procedure construire_application_main_menu()
If IsMenu(#MenuApp)
FreeMenu(#MenuApp)
EndIf
If CreateImageMenu(#MenuApp, WindowID(#WinApp), #PB_Menu_ModernLook)
; Crétion des menus dynamiquement
; Lecture des Map (NewMap) et des List (NewList) créées lors du parsing de la playlist concernée
EndIf
EndProcedure
Procedure construire_application_aide()
EndProcedure
Procedure construire_application_interface()
EndProcedure
Procedure construire_application_tray_menu()
EndProcedure
Re: Problème d'affichage du symbole Euro € (AltGr+E)
Publié : ven. 14/juil./2023 17:08
par boddhi
Salut,
cage a écrit :
Je ne modifie pas la fonte par défaut de l'application, alors ça devrait fonctionner.
La fonte par défaut sous Win10 (version indiquée dans ta signature) est SEGOE UI, laquelle gère les caractères UNICODE dont la valeur de codage n'excède pas 65 535. Le symbole € a, lui, une valeur de 8364.
As-tu essayé la séquence "ALT GR + E" (dans un stringgadget créé dans ta fenêtre pour l'occasion, par exemple) ou la fonction Chr(8364) pour voir si le symbole € s'affichait ou non ?
Code : Tout sélectionner
OpenWindow(0,100,100,200,200,"Test €",#PB_Window_SystemMenu)
StringGadget(0,20,20,160,24,"€"+Chr(8364))
CreateMenu(0,WindowID(0))
MenuTitle("Test")
MenuItem(0,"Sous-menu 1 : €")
MenuItem(1,"Sous-menu 2 : "+Chr(8364))
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
Re: Problème d'affichage du symbole Euro € (AltGr+E)
Publié : ven. 14/juil./2023 17:36
par cage
@boddhi:
J'utilisais bien "ALT GR + E" et le symbole Euro apparaissait bien dans le code mais pas dans l'application.
Je viens d'essayer Chr(8364), et miracle (je suis né pas loin de Lourdes) le symbole Euro apparait bien dans les menus.
Il doit bien y avoir une explication au phénomène, mais je ne vois pas bien lequel.
Un grand merci a toi d'avoir trouvé une/la solution.
cage
Re: Problème d'affichage du symbole Euro € (AltGr+E)
Publié : ven. 14/juil./2023 17:46
par boddhi
cage a écrit :
J'utilisais bien "ALT GR + E" et le symbole Euro apparaissait bien dans le code mais pas dans l'application.
As-tu essayé mon code ? Si oui, est-ce que tous les € s'affichent correctement (et dans le stringgadget et dans les menus) et as-tu essayé la combinaison de touches dans le stringgadget ?
Re: Problème d'affichage du symbole Euro € (AltGr+E)
Publié : ven. 14/juil./2023 18:00
par cage
Ton code de test fonctionne parfaitement et le symbole Euro est bien affiché dans les 2 menus et dans le stringgadget.
Si je tape "ALT GR + E" dans le stringgadget, le symbole Euro s'affiche bien.
Je me cite:
Je précise que si je crée une application toute simple avec un menu, le symbole Euro s'affiche bien.
Donc, par défaut, PB se lance avec une fonte qui accepte le symbole Euro.
Pour moi, le problème viendrait de la taille du menu et/ou du fait qu'il est créé de manière dynamique.
Dans tous les cas, l'utilisation de Chr(8364) règle le problème et je t'en remercie.
cage
Re: Problème d'affichage du symbole Euro € (AltGr+E)
Publié : ven. 14/juil./2023 23:49
par boddhi
Very strange comme diraient nos amis anglophones.
Taille ou création dynamique du menu, en théorie, je ne vois pas ce qui empêcherait l'utilisation de ce caractère...
As-tu fait le test avec un autre caractère du même style ? Genre "•" (ALT + 7 - Chr(8226))
Note bienveillante : Si tu considères que ton pb est résolu, n'hésite pas à l'indiquer dans le titre de ton 1er post

Re: Problème d'affichage du symbole Euro € (AltGr+E)
Publié : sam. 15/juil./2023 8:44
par cage
Vraiment très étrange, je confirme.
As-tu fait le test avec un autre caractère du même style ? Genre "•" (ALT + 7 - Chr(8226))
ALT + 7 affiche bien "•" dans le code mais pas dans les menus.
Par contre, Chr(8226) affiche bien le "•" dans les menus.
Je fais marquer résolu mon premier post malgré le fait que la source du problème reste inconnue.
Encore merci a toi.
cage
Re: Problème d'affichage du symbole Euro € (AltGr+E) - résolu ?
Publié : sam. 15/juil./2023 8:51
par boddhi
Tu peux poster juste la ligne de code qui créé ton item de menu ? Histoire de voir comment tu construis ta chaîne de caractères...
Re: Problème d'affichage du symbole Euro € (AltGr+E) - résolu ?
Publié : sam. 15/juil./2023 9:05
par cage
Code : Tout sélectionner
Global Euro$ = Chr(8364)
If CreateImageMenu(#MenuApp, WindowID(#WinApp), #PB_Menu_ModernLook)
OpenSubMenu("Utiliser le fournisseur "+Euro$, IconEuro) ; fonctionne
OpenSubMenu("Utiliser le fournisseur €", IconEuro) ; ne fonctionne pas
CloseSubMenu()
EndIf
Re: Problème d'affichage du symbole Euro € (AltGr+E) - résolu ?
Publié : sam. 15/juil./2023 9:33
par Marc56
Avec ça (exemple complet), j'ai bien les deux signes €
PB 6.02 LTS Windows 10 x64 compilateur ASM ou C
Code : Tout sélectionner
Global Euro$ = Chr(8364)
OpenWindow(0, 0, 0, 300, 300, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If CreateImageMenu(1, WindowID(0), #PB_Menu_ModernLook)
MenuTitle("Test")
OpenSubMenu("Utiliser le fournisseur " + Euro$, IconEuro) ; fonctionne
OpenSubMenu("Utiliser le fournisseur €", IconEuro) ; ne fonctionne pas
CloseSubMenu()
EndIf
Repeat : Until WaitWindowEvent(0) = #PB_Event_CloseWindow