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
commande RAWKEY
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: commande RAWKEY
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.
Aide :
http://www.purebasic.com/french/documen ... tmenu.html
http://www.purebasic.com/french/documen ... rtcut.html
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


Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: commande RAWKEY
@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
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