Page 1 sur 1
commande RAWKEY
Publié : mer. 14/janv./2015 20:55
par sospel
Bonjour !
je voudrais utiliser "rawkey()" dans une "window" mais, apparement, il ne se passe rien quand j'appuie sur une des touches concernées - ex : flèche vers le haut-
Par contre, ça fonctionne bien dans la fenêtre d'une "console".
Est-ce normal, ou bien ai-je loupé une commande dans le manuel ?
Merci par avance pour toute réponse à ma question !
Cordialement,
SosPel
Re: commande RAWKEY
Publié : mer. 14/janv./2015 22:58
par falsam
Bonjour Sospel.
Ne soit pas déconcerté par ce que je vais dire : La gestion des touches d'un clavier passe par l’événement
#PB_Event_Menu associé à
EventMenu()
■ EventMenu() Renvoie le numéro du menu qui a envoyé l’événement #PB_Event_Menu, mais renvoie aussi un raccourci clavier qui a été utilisé.
■ Ces raccourcis claviers ne sont pas nécessairement associés à des options de menu.
■ C'est ce que je propose de voir avec ce code qui va détecter si la touche
F2 ou
Ctrl + C est bien détectée.
Code : Tout sélectionner
Enumeration Window
#Mainform
EndEnumeration
Enumeration Keys
#F2
#CtrlC
#Left
EndEnumeration
Procedure OnPress()
Select EventMenu()
Case #F2
Debug "Touche : F2"
Case #CtrlC
Debug "Touche : Ctrl + C"
EndSelect
EndProcedure
Procedure Open_MainForm()
OpenWindow(#Mainform, 0, 0, 500, 400, "Détection touches clavien", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
;Ajout de quelques touches de controle
;Simple touche (F2)
AddKeyboardShortcut(#Mainform, #PB_Shortcut_F2, #F2)
;Combinaison de touche (Ctrl + C)
AddKeyboardShortcut(#Mainform, #PB_Shortcut_Control|#PB_Shortcut_C, #CtrlC)
;Les évenements associés
BindEvent(#PB_Event_Menu, @OnPress())
EndProcedure
Open_MainForm()
Repeat : Until WaitWindowEvent(10) = #PB_Event_CloseWindow
Aide :
http://www.purebasic.com/french/documen ... tmenu.html
http://www.purebasic.com/french/documen ... rtcut.html
Re: commande RAWKEY
Publié : jeu. 15/janv./2015 9:31
par sospel
@falsam
Merci pour ta réponse qui est, comme à chaque fois, précise et complète
Je vais utiliser tes instructions dans mon programme, en particulier avec "#PB_Shortcut_Left".
J'avais envisagé un menu géré par la souris mais sans utilisation de touches avec
AddKeyboardShortcut dont je n'avais pas repéré l'existence. On en apprends tous les jours !!
Encore merci.
Cordialement
SosPel