Page 1 sur 1

Problème avec les HotKeys sous Windows

Publié : lun. 15/nov./2010 0:16
par boddhi
Bonsoir à tous

Quelqu'un pourrait-il tester le code suivant (créé et testé uniquement sous Vista) en mode Support des thèmes XP activé et me dire si il constate la même anomalie que moi ?

Code : Tout sélectionner

Procedure OuvertureFenetreFille()
  DisableWindow(0,#True)
  OpenWindow(1,0,0,100,100,"Fenêtre fille",#PB_Window_SystemMenu|#PB_Window_WindowCentered,WindowID(0))
  ButtonGadget(3,8,8,92,28,"&Quitter")
  AddKeyboardShortcut(1,#PB_Shortcut_Alt|#PB_Shortcut_Q,1002)
EndProcedure
Procedure FermetureFenetreFille()
  RemoveKeyboardShortcut(1,#PB_Shortcut_Alt|#PB_Shortcut_Q)
  CloseWindow(1)
  DisableWindow(0,#False)
EndProcedure

If OpenWindow(0,0,0,100,100,"Test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ButtonGadget(0,8,8,92,28,"&Fenêtre fille")
  ButtonGadget(1,8,50,92,28,"&Quitter")
  AddKeyboardShortcut(0,#PB_Shortcut_Alt|#PB_Shortcut_F,1000)
  AddKeyboardShortcut(0,#PB_Shortcut_Alt|#PB_Shortcut_Q,1001)
  Repeat
    Select EventWindow()
      Case 0
        Select WaitWindowEvent()
          Case #PB_Event_Menu
            Select EventMenu()
              Case 1000:OuvertureFenetreFille()
              Case 1001:End
            EndSelect
          Case #PB_Event_Gadget
            Select EventGadget()
              Case 0:OuvertureFenetreFille()
              Case 1:End
            EndSelect
          Case #PB_Event_Menu
        EndSelect
      Case 1
        Select WaitWindowEvent()
          Case #PB_Event_Menu
            Select EventMenu()
              Case 1002:FermetureFenetreFille()
            EndSelect
          Case #PB_Event_Gadget
            Select EventGadget()
              Case 3:FermetureFenetreFille()
            EndSelect
        EndSelect
    EndSelect
  ForEver
EndIf
Les hotkeys (&F et &Q) de la fenêtre mère n'apparaissent pas sur les gadgets 8O :?: :?: (alors qu'ils sont présents en mode Support des thèmes XP désactivé).
Le hotkey (&Q) de la fenêtre fille n'apparaît seulement que si on l'ouvre à partir du raccourci-clavier (&F) de la fenêtre mère 8O

J'ai testé cette anomalie de toutes les manières possibles (débogueur activé/désactivé, compiler, exécuter, exécutable) et le résultat est toujours le même !

Quelqu'un saurait-il d'où vient cette bizarrerie (bug dans mon code ? bug Windows ? Vista ? PB ? ...) et si il y a un moyen de résoudre/contourner ce problème ?

Merci.

Re: Problème avec les HotKeys sous Windows

Publié : lun. 15/nov./2010 0:21
par case
appercu de la doc :
Vous pouvez utiliser le caractère '&' pour souligner une lettre particulière dans le 'Texte$'du bouton : "&Bouton" affichera : Bouton
(Note: Sous Windows XP le caractère souligné apparait seulement si cette option n'est pas désactivée.)
je suppose que le support du theme xp est par défaut avec l'option désactivée sous vista ou 7 (j'ai pas vista mais même 'problème' )

Re: Problème avec les HotKeys sous Windows

Publié : lun. 15/nov./2010 0:41
par boddhi
@Case
Merci de ta réponse rapide...
Vous pouvez utiliser le caractère '&' pour souligner une lettre particulière dans le 'Texte$'du bouton : "&Bouton" affichera : Bouton
(Note: Sous Windows XP le caractère souligné apparait seulement si cette option n'est pas désactivée.)
A vrai dire, il y a longtemps que je n'ai pas lu la doc concernant le buttongadget, j'avais oublié cette précision :D
Mais à quelle option est-il fait allusion ? Au niveau du bouton ou au niveau du projet ?

Si j'ai bien compris le sens de cette remarque, l'underscore (symbolisé par un &) n'apparaît que si l'option Support des thèmes XP est activée, n'est-ce pas ? Le cas échéant, ce n'est pas du tout le cas dans mon exemple...
Et ce qui est d'autant plus étrange, c'est que selon la manière dont on ouvre la fenêtre fille (bouton ou raccourci-clavier), le raccourci apparaît ou n'apparaît pas !?
Logiquement, selon l'option, il devrait soit apparaître tout le temps soit jamais :(

Re: Problème avec les HotKeys sous Windows

Publié : lun. 15/nov./2010 9:20
par case
a mon avis une option dans window xp


mais j'avoue que la doc n'est pas super claire a ce sujet ,)

Re: Problème avec les HotKeys sous Windows

Publié : lun. 15/nov./2010 9:26
par Backup
sur mon XP


1- si j'active le support des themes
les underscores sont présent (fenetre mere ou fille)

2- si je désactive le support des themes
les underscores sont présent (fenetre mere ou fille)


3- je reactive le support des themes, et le underscore du F disparait
mais son raccourci reste (ALt+F) fonctionne !!!

DEPART

4- si je re-désactive le support des themes
les underscores sont présent (fenetre mere ou fille)

5- si je Ré- active le support des themes
les underscores sont absent (fenetre mere ou fille) !! 8O
(mais le raccourci fonctionne !! )

Goto DEPART

voila ça fait comme ça une fois sur 2

Re: Problème avec les HotKeys sous Windows

Publié : lun. 15/nov./2010 9:45
par Backup
je viens de signaler le probleme sur le forum anglais
ici :
http://forums.purebasic.com/english/vie ... 0532ec4978

Re: Problème avec les HotKeys sous Windows

Publié : lun. 15/nov./2010 10:19
par boddhi
Bon, j'ai testé sous XP ce matin et j'ai exactement le même souci...
Les underscores n'apparaissent que si j'appelle la fenêtre-fille à partir du raccourci clavier ALT+F...
C'est à rien n'y comprendre... Ce sont pourtant les mêmes procédures appelantes et appelées !!!
Dobro a écrit :voila ça fait comme ça une fois sur 2
moi, jamais :D
Dobro a écrit :je viens de signaler le probleme sur le forum anglais
Merci de ta démarche, j'allais y jeter un coup d'oeil, le temps de retrouver mon dico anglais-français qui doit être enfoui dans le coffre des horreurs à n'ouvrir qu'en cas d'extrême nécessité :lol: si je ne l'ai pas brûlé... :D

Pour précision, je constate aussi ce phénomène sur l'optiongadget(), le CheckBoxGadget() et le StringGadget(), et probablement les autres gadgets...