gadget et AddKeyboardShortcut

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
didier69
Messages : 61
Inscription : mer. 30/avr./2008 12:50
Localisation : Villeurbanne (Lyon)

gadget et AddKeyboardShortcut

Message par didier69 »

Bonjour,

je suis un fana du clavier et j'essaye d'utiliser toutes mes
applications windows sans la souris quand c'est possible :).

J'essaye de comprendre comment ajouter un raccourci clavier
sur un gadget. Dans la documentation il est dit qu'on peut
utiliser la fonction AddKeyboardShortcut() pour beaucoup de
gadgets. Par contre cette fonction prend en premier argument
un identifiant de window et non de gadget.

Est-ce que je ne comprends pas bien la documentation ou ai-je
fait une erreur ?

Cordialement.
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message par gnozal »

AddKeyboardShortcut() va générer un évenement de type menu, hors les menus sont liés à une fenêtre.
Donc pas d'erreur, c'est bien un identifiant de fenêtre (la fenêtre qui héberge le gadget).
didier69
Messages : 61
Inscription : mer. 30/avr./2008 12:50
Localisation : Villeurbanne (Lyon)

Message par didier69 »

Alors je suis parti pour faire une petite application
afin de manipuler quelques gadgets. Je voudrais que quand
j'appuie sur <entrée> alors que je suis en focus sur un
StringGadget déclencher l'appel d'une fonction. J'essaye
de chercher dans le forum, mais je ne trouve pas d'exemple
simple.

Auriez-vous un petit bout de code montrant comment faire ?

Merci.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Pour un StringGadget, tu peux faire un truc dans ce genre là.

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 322, 205, "Les options de StringGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
  If CreateGadgetList(WindowID(0))
    StringGadget(0, 8,  10, 306, 20, "Clique moi d'dans et appuie sur ''Entrée''!!!!")
    
    AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)
  EndIf
EndIf

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Menu
      Select EventMenu()
          
        Case 0
          If GetFocus_() = GadgetID(0)
            SetGadgetText(0, "Coucou, c'est moi!!!")
          EndIf
      EndSelect
      
    Case #PB_Event_CloseWindow
      Quit = #True
      
  EndSelect
Until Quit
End
didier69
Messages : 61
Inscription : mer. 30/avr./2008 12:50
Localisation : Villeurbanne (Lyon)

Message par didier69 »

Hum, je ne peux pas utiliser GetFocus_() avec la version
démo :).
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Tu peux remplacer par:

Code : Tout sélectionner

if GetActiveGadget()=0
didier69
Messages : 61
Inscription : mer. 30/avr./2008 12:50
Localisation : Villeurbanne (Lyon)

Message par didier69 »

Tiens je viens de m'apercevoir que OpenWindow et StringGadget
ont le même identifiant, à savoir 0.

C'est normal ?
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

didier69 a écrit :Tiens je viens de m'apercevoir que OpenWindow et StringGadget
ont le même identifiant, à savoir 0.

C'est normal ?
Oui c'est normal.
PB différencie les fenêtres et les gadgets, tu peux donc leur donner le même ID sans problème.
didier69
Messages : 61
Inscription : mer. 30/avr./2008 12:50
Localisation : Villeurbanne (Lyon)

Message par didier69 »

Merci à tous les deux ça fonctionne :).

Vraiment très pratique purebasic ;).
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

didier69 a écrit :Merci à tous les deux ça fonctionne :).

Vraiment très pratique purebasic ;).
C'est une bonne raison pour l'acheter, non??? :roll: :lol:
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Ah oui, comme dirait Perceval je soutiens. :lol:
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

nico a écrit :Ah oui, comme dirait Perceval je soutiens. :lol:
C'est pas faux! :mrgreen:
Répondre