commande RAWKEY

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
sospel
Messages : 56
Inscription : ven. 05/déc./2008 21:47

commande RAWKEY

Message 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
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: commande RAWKEY

Message 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 :
:arrow: http://www.purebasic.com/french/documen ... tmenu.html
:arrow: http://www.purebasic.com/french/documen ... rtcut.html
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%
sospel
Messages : 56
Inscription : ven. 05/déc./2008 21:47

Re: commande RAWKEY

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