AddKeyboardShortcut indomptable... [Résolu]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

AddKeyboardShortcut indomptable... [Résolu]

Message par SPH »

Salut a tous, :P

Je n'arrive pas a créer un "AddKeyboardShortcut" (je ne l'ai jamais fait; faut bien une premiere fois).
Ici, je voudrais que quand j'appuie sur ESC, ca fasse un END (regardez la ligne 44 et 45) :oops:

Code : Tout sélectionner

InitSprite()
InitKeyboard()
InitMouse()



If OpenWindow(0, 0, 0, 0,0, " Polygons_Maker",#PB_Window_Maximize|#PB_Window_BorderLess)=0
  Beep_(500,250) : Delay(150) : Beep_(500,250)
  Debug ("OpenWindow() impossible")
  End
EndIf

If OpenGLGadget(1,0,0,1920,1080)=0
  Beep_(500,250) : Delay(150) : Beep_(500,250)
  Debug ("OpenGLGadget() impossible")
  End
EndIf


AddKeyboardShortcut(0,  #PB_Shortcut_Escape, 666)


Repeat
  
  key = GetGadgetAttribute(1, #PB_OpenGL_Key)
  

  SetGadgetAttribute(1,#PB_OpenGL_FlipBuffers,#True)
  
  StopDrawing()
  
  ;  Repeat
  Event = WaitWindowEvent()
  
  Select Event
      
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 1
          Select EventType()
            Case #PB_EventType_LeftClick        : Debug "Clic avec le bouton gauche de la souris"
            Case #PB_EventType_RightClick       : Debug "Clic avec le bouton droit de la souris"
          EndSelect
        Case 666 ; ?????????
          End
          
      EndSelect
      
  EndSelect
  
ForEver

Grand merci a l'avance...
Dernière modification par SPH le sam. 28/nov./2020 15:42, modifié 1 fois.

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Mindphazer
Messages : 695
Inscription : mer. 24/août/2005 10:42

Re: AddKeyboardShortcut indomptable...

Message par Mindphazer »

Les raccourcis clavier sont assimilés à des événements de type menu
Il faut donc que tu fasses un truc du style :

Code : Tout sélectionner

Case #PB_Event_Menu
  Select EventMenu()
    Case 666...
  EndSelect
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
Mindphazer
Messages : 695
Inscription : mer. 24/août/2005 10:42

Re: AddKeyboardShortcut indomptable...

Message par Mindphazer »

Ton code complet :

Code : Tout sélectionner

InitSprite()
InitKeyboard()
InitMouse()



If OpenWindow(0, 0, 0, 0,0, " Polygons_Maker",#PB_Window_Maximize|#PB_Window_BorderLess)=0
  Beep_(500,250) : Delay(150) : Beep_(500,250)
  Debug ("OpenWindow() impossible")
  End
EndIf

If OpenGLGadget(1,0,0,1920,1080)=0
  Beep_(500,250) : Delay(150) : Beep_(500,250)
  Debug ("OpenGLGadget() impossible")
  End
EndIf



AddKeyboardShortcut(0,  #PB_Shortcut_Escape, 666)


Repeat
  
  key = GetGadgetAttribute(1, #PB_OpenGL_Key)
  

  SetGadgetAttribute(1,#PB_OpenGL_FlipBuffers,#True)
  
  StopDrawing()
  
  ;  Repeat
  Event = WaitWindowEvent()
  
  Select Event
      
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 1
          Select EventType()
            Case #PB_EventType_LeftClick        : Debug "Clic avec le bouton gauche de la souris"
            Case #PB_EventType_RightClick       : Debug "Clic avec le bouton droit de la souris"
          EndSelect
        ;Case #KeyESC ; ?????????
        ;  End
          
      EndSelect
    Case #PB_Event_Menu
      Select EventMenu()
        Case 666
          End
      EndSelect
  EndSelect
  
ForEver
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: AddKeyboardShortcut indomptable...

Message par SPH »

Merci beaucoup, je n'y serais pas arrivé sans ton aide :idea:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: AddKeyboardShortcut indomptable...

Message par venom »

En même temps c'est bien connu, on ne met pas 666 comme label. C'est le diable assuré :lol:






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: AddKeyboardShortcut indomptable...

Message par SPH »

venom a écrit :En même temps c'est bien connu, on ne met pas 666 comme label. C'est le diable assuré :lol:
Pour faire un End, il fallait bien ça :wink:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: AddKeyboardShortcut indomptable... [Résolu]

Message par falsam »

Résolu ok mais ce n'est pas la bonne solution :wink:

Une lecture de la documentation sur OpenGLGadget() t'aurais donnée une solution sans passer par l'ajout d'une touche de raccourci.

:arrow: https://www.purebasic.com/french/docume ... adget.html

Voici un code pour tester les événements clavier/souris de ton OpenGLGadget().

Code : Tout sélectionner

EnableExplicit

Global window, ww = 800, wh = 600, viewport, Key

OpenWindow(#PB_Any, 0, 0, ww, wh, "Test Opengl", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)

viewport = OpenGLGadget(#PB_Any, 0, 0, ww, wh, #PB_OpenGL_NoDepthBuffer | #PB_OpenGL_Keyboard)
SetActiveGadget(viewport)

While #True
  Repeat     
    Select EventType()
        
      Case #PB_EventType_KeyDown  ;Une touche a été pressée (Exemple les fléches du clavier)
         Key = GetGadgetAttribute(viewport, #PB_OpenGL_Key)
        Select Key
          Case #PB_Shortcut_Left
            Debug "Left : Fleche gauche"
            
          Case #PB_Shortcut_Right
            Debug "Right : Fleche droite"            
        EndSelect
                
      Case #PB_EventType_KeyUp  ;Une touche a été relâchée (Exemple Escape)
        Key = GetGadgetAttribute(viewport, #PB_OpenGL_Key)
        Select Key
          Case #PB_Shortcut_Escape
            Debug "Esc : Je sors"
            End   
        EndSelect
        
      Case #PB_EventType_LeftButtonDown ;Le bouton gauche de la souris a été pressé    
        Debug "Bouton gauche de la souris"
    EndSelect
  Until WindowEvent() = 0
Wend
Tu peux tester la touche Escape, Fleche gauche et droite et Clic Gauche sur l'OpenGLGadget.
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%
Répondre