ceci fonctionne , si tu commence par ecrire une autre lettre que b
ps : prends l'habitude d'utiliser des constantes même dans tes tests , parce que tout avec '0' c'est pas évident pour trouver les éventuels bug
Code : Tout sélectionner
Enumeration
#Win_0
#menu
#gadget
#event
EndEnumeration
flag = #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_WindowCentered
If OpenWindow(#Win_0, 0,0,800, 600, "Shorcut & String gadget", flag)
CreateMenu(#menu,WindowID(#win_0))
MenuTitle("File")
MenuItem(#menu,"test")
AddKeyboardShortcut(#Win_0,#PB_Shortcut_Control|#PB_Shortcut_B,#event)
StringGadget(#gadget,10,10,120,20,"")
EndIf
Repeat
EventID =WaitWindowEvent()
Select EventID
case #WM_LBUTTONUP
AddKeyboardShortcut(#Win_0,#PB_Shortcut_B,0) ; on remet le raccourci
Case #PB_Event_Menu
Select EventMenu()
Case #event
MessageRequester("info","just to test the menu")
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case #gadget
RemoveKeyboardShortcut(#Win_0,#PB_Shortcut_B )
Debug GetGadgetText(#gadget) ; please try to type the B key !
;
EndSelect
Case #PB_Event_CloseWindow
quit=1
EndSelect
Until quit
End; EPB
j'utilise le bouton gauche qui se releve pour reactualiser le raccourci désactivé
mais en fait j'aurai du utiliser le click ( appuis ) gauche plutot
comme ça on click sur le gadget , qui desactivera le raccourci au premier ecrit
et pour reactualiser le raccourci , il suffirai de cliquer ailleurs sur la fenetre
comme ça :
Code : Tout sélectionner
Enumeration
#Win_0
#menu
#gadget
#event
EndEnumeration
flag = #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_WindowCentered
If OpenWindow(#Win_0, 0,0,800, 600, "Shorcut & String gadget", flag)
CreateMenu(#menu,WindowID(#win_0))
MenuTitle("File")
MenuItem(#menu,"test")
AddKeyboardShortcut(#Win_0,#PB_Shortcut_Control|#PB_Shortcut_B,#event)
StringGadget(#gadget,10,10,120,20,"")
EndIf
Repeat
EventID =WaitWindowEvent()
Select EventID
case #WM_LBUTTONDown
AddKeyboardShortcut(#Win_0,#PB_Shortcut_B,0) ; on remet le raccourci
Case #PB_Event_Menu
Select EventMenu()
Case #event
MessageRequester("info","just to test the menu")
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case #gadget
RemoveKeyboardShortcut(#Win_0,#PB_Shortcut_B )
Debug GetGadgetText(#gadget) ; please try to type the B key !
;
EndSelect
Case #PB_Event_CloseWindow
quit=1
EndSelect
Until quit
End; EPB
bien sur avec des gadgets suplementaire, aurai facilité le truc
tu peux reserver un bouton pour reactualiser le raccourci ,
comme tu l'a compris , je jongle avec :
Code : Tout sélectionner
RemoveKeyboardShortcut(#Win_0,#PB_Shortcut_B ) ; on retire le raccourci
AddKeyboardShortcut(#Win_0,#PB_Shortcut_B,0) ; on remet le raccourci
l'utilisation d'un timer est possible aussi

tu lance le timer lorsque tu desactive le raccourcis , et tu compte un certain temps avant de le réactualiser

ça sert a ça aussi les Timers
