Problème avec les HotKeys sous Windows

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Problème avec les HotKeys sous Windows

Message 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.
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Problème avec les HotKeys sous Windows

Message 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' )
ImageImage
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Problème avec les HotKeys sous Windows

Message 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 :(
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Problème avec les HotKeys sous Windows

Message par case »

a mon avis une option dans window xp


mais j'avoue que la doc n'est pas super claire a ce sujet ,)
ImageImage
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Problème avec les HotKeys sous Windows

Message 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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Problème avec les HotKeys sous Windows

Message par Backup »

je viens de signaler le probleme sur le forum anglais
ici :
http://forums.purebasic.com/english/vie ... 0532ec4978
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Problème avec les HotKeys sous Windows

Message 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...
Répondre