Page 1 sur 2

PanelGadget()... y a rien qui marche!

Publié : jeu. 18/nov./2004 17:50
par gansta93
Salut tout le monde,

J'essais de faire un programme pour m'entraîner avec les gadgets, et là je m'attaque aux panelgadget.
Le truc est le suivant: je change d'onglet, les boutons qu'il faut pour l'onglet n'aparaissent pas, quelque soit l'onglet sélectionné. Au départ je sélectionne l'onglet 0, et ça ne marche quand même pas.
Je veux aussi faire un racourci pour changer d'onglet avec CTRL+Tab et CTRL+Maj+Tab, mais ça ne marche pas nonplus.
Si c encore moi qui me fait une mauvaise représentation de ma fenêtre, je retourne chez mes copins les bigleux :'(.

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 200, 200, #pb_window_sizegadget | #pb_window_minimizegadget | #pb_window_maximizegadget | #pb_window_systemmenu | #pb_window_titlebar | #pb_window_screencentered, "Essais") And CreateGadgetList(WindowID(0)) And CreateStatusBar(0, WindowID(0))
  StatusBarText(0, 0, "Prait")
  PanelGadget(0, 10, 0, 150, 20)
    AddGadgetItem(0, -1, "Onglet 1")
    ButtonGadget(1, 10, 30, 100, 20, "Bouton dans onglet 1")
    AddGadgetItem(0, -1, "Onglet 2")
    ButtonGadget(2, 10, 30, 100, 20, "Bouton dans onglet2")
  CloseGadgetList()
  SetGadgetState(0, 0)
  ButtonGadget(3, 10, 70, 50, 20, "Quitter")
  Repeat
    AddKeyboardShortcut(0, #pb_shortcut_control | #pb_shortcut_tab, 0)
    AddKeyboardShortcut(0, #pb_shortcut_control | #pb_shortcut_shift | #pb_shortcut_tab, 1)
    Select WaitWindowEvent()
      Case #pb_eventgadget
        Select EventGadgetID()
          Case 0
            StatusBarText(0, 0, GetGadgetText(0) + " est actif")
          Case 1
            MessageRequester("", "Clique sur bouton dans onglet 1.")
          Case 2
            MessageRequester("", "Clique sur bouton dans onglet 2.")
          Case 3
            quit = 1
        EndSelect
      Case #pb_eventmenu
        Select EventMenuID()
          Case 0
            If GetGadgetState(0) = CountGadgetItems(0)
              SetGadgetState(0, 0)
            Else
              SetGadgetState(0, GetGadgetState(0) + 1)
            EndIf
          Case 1
            If GetGadgetState(0) = 0
              SetGadgetState(0, CountGadgetItems(0))
            Else
              SetGadgetState(0, GetGadgetState(0) - 1)
            EndIf
        EndSelect
      Case #pb_eventclosewindow
        quit = 1
    EndSelect
    Delay(20)
  Until quit = 1
EndIf
End

Publié : jeu. 18/nov./2004 18:05
par Anonyme2
c'est d'abord ça qui coince

Code : Tout sélectionner

PanelGadget(0, 10, 0, 150, 20)
le dernier paramètre, avec 20 on va pas voir le panel mais juste son titre.

Publié : jeu. 18/nov./2004 20:43
par Jacobus
...Puis après c'est ça qui manque :

Code : Tout sélectionner

OpenGadgetList(#panel_1 ,"PANEL 1")
à mettre entre les deux, comme ça :

Code : Tout sélectionner

PanelGadget(0, 10, 0, 150, 20) 
 OpenGadgetList(0,"Onglet 1") <= Là tu nommes ton oglet
    AddGadgetItem(0, -1, "Onglet 1") 
Ainsi tu ouvres ta suite d'onglets les uns après les autres
en oubliant pas de fermer chaque onglet avec

Code : Tout sélectionner

CloseGadgetList() 
@+ Jacobus

Publié : jeu. 18/nov./2004 21:20
par Chris
Pourquoi faire, OpenGadgetList() :?:

Code : Tout sélectionner

If CreateGadgetList(WindowID(0))
  PanelGadget(0, 10, 0, 150, 80)
    
  ;Le premier onglet,...
  AddGadgetItem(0, -1, "Onglet 1")
  ButtonGadget(1, 10, 30, 100, 20, "Bouton dans onglet 1")
    
  ;... puis le deuxième, et ainsi de suite
  AddGadgetItem(0, -1, "Onglet 2")
  ButtonGadget(2, 10, 30, 100, 20, "Bouton dans onglet2")
    
  ;... et tu fermes pour revenir à la GadgetList en cours
  CloseGadgetList()
    
  ; ... et les gadgets qui suivent.
  ButtonGadget(3, 10, 90, 150, 20, "Quitter")
EndIf
SetGadgetState(0, 0)
Ni plus, ni moins!

Publié : jeu. 18/nov./2004 21:40
par Jacobus
bah, moi j'ouvre une gadgetlist pour chaque onglet
que je referme avant de créer un nouvel onglet...
C'est que j'en met pas mal des gadgets dans un onglet...

Publié : jeu. 18/nov./2004 21:46
par Chris
Jacobus a écrit :bah, moi j'ouvre une gadgetlist pour chaque onglet
que je referme avant de créer un nouvel onglet...
C'est que j'en met pas mal des gadgets dans un onglet...
Question:
Combien on peut mettre de gadgets dans une gadgetlist?

N'en voilà une question qu'elle est bonne :roll:

Publié : ven. 19/nov./2004 8:00
par Jacobus
Tu as parfaitement raison Chris, logiquement il n'y a pas besoin d'ouvrir une gadgetliste à chaque onglet (dixit l'aide PB) mais je trouvais plus clair de le faire notamment lors de longue série de gadgets. j'ai fait un gestionnaire qui est composé de 200 lignes par onglet rien que les gadgets et c'est pourquoi j'ai fais open et close pour chaque onglet. Est-ce qu'il y a une incidence sur le code ? je sais pas... :?:

Et combien de gadgets par gadgetliste ? en effet bonne question, peut-être que Fred pourrait y répondre... :roll:

@+ Jacobus

Publié : ven. 19/nov./2004 8:19
par gansta93
Merci, ça marche maintenant :-).
C'est vrai que ça serait interressant à savoir combien de gadget on peut mettre dans un onglet.
Sinon j'ai une question:
mon PanelGadget a une hauteure de 80, et j'ai un bouton qui a comme coordonnées Y=30. Y=0 correspondrait-il à être placé juste sous le PanelGadget?
Et pour mes deux racourcis (qui normalemant devraient marcher par défaut), pourquoi ne marche-t-il pas quand je le crait moi?

Encore merci.

Publié : ven. 19/nov./2004 17:26
par brossden
Salut Gansta

Teste un peut ton propre code ici :

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 250, 200, #PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered, "Essais") And CreateGadgetList(WindowID(0)) And CreateStatusBar(0, WindowID(0)) 
  StatusBarText(0, 0, "Prèt") 
  PanelGadget(0, 10, 0, 150, 170) 
  AddGadgetItem(0, -1, "Onglet 1") 
  ButtonGadget(1, 10, 30, 120, 20, "Bouton dans onglet 1") 
  AddGadgetItem(0, -1, "Onglet 2") 
  ButtonGadget(2, 10, 30, 120, 20, "Bouton dans onglet2") 
  CloseGadgetList() 
  SetGadgetState(0, 0) 
  ButtonGadget(3, 160,0, 70, 20, "Quitter") 
  Repeat 
    AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_Tab, 0) 
    AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_Shift | #PB_Shortcut_Tab, 1) 
    Select WaitWindowEvent() 
      Case #PB_EventGadget 
        Select EventGadgetID() 
          Case 0 
            StatusBarText(0, 0, GetGadgetText(0) + " est actif") 
          Case 1 
            MessageRequester("", "Clique sur bouton dans onglet 1.") 
          Case 2 
            MessageRequester("", "Clique sur bouton dans onglet 2.") 
          Case 3 
            quit = 1 
        EndSelect 
      Case #PB_EventMenu 
        Select EventMenuID() 
          Case 0 
            If GetGadgetState(0) = CountGadgetItems(0) 
              SetGadgetState(0, 0) 
            Else 
              SetGadgetState(0, GetGadgetState(0) + 1) 
            EndIf 
          Case 1 
            If GetGadgetState(0) = 0 
              SetGadgetState(0, CountGadgetItems(0)) 
            Else 
              SetGadgetState(0, GetGadgetState(0) - 1) 
            EndIf 
        EndSelect 
      Case #PB_EventCloseWindow 
        quit = 1 
    EndSelect 
    Delay(20) 
  Until quit = 1 
EndIf 
End 
Je pense que c'est ce que tu voulais initialement
Si tu regarde bien je n'ai pas changé grand chose à ton code juste la taille et la position de chacun des gadgets !!!!

Publié : ven. 19/nov./2004 19:55
par gansta93
Merci.
Après expériance, ça n'a pas l'haiir de gèner si je mais des coordonnées Y=0 pour le bouton dans un onglet.
Encore merci à tous.

Publié : ven. 19/nov./2004 20:43
par Aranoth
Après expériance, ça n'a pas l'haiir de gèner si je mais des coordonnées
erf.. stp fait un peu attention à l'orthographe !


Après expérience, ça n'a pas l'air de gèner si je met des coordonnées
c'est pas plus lisible ca ? pourtant ca prend pas plus de temps :wink:

Publié : ven. 19/nov./2004 22:14
par gansta93
GRRR.
Enfin bon...
Moi au moins, je ne parle pas en SMS :-P.

Publié : sam. 20/nov./2004 7:14
par brossden
Bonjour Aranoth !
Quand on reprend les gens sur leur orthographe on évite d'en faire soi même dans la correction :

"Après expérience, ça n'a pas l'air de gêner si je mets des coordonnées ..."
Si tu veux de surcroît parler en bon français il vaudrait peut être mieux dire :
"Après expérience, cela n'a pas l'air gênant de mettre des coordonnées ..."
Enfin c'est juste mon avis !
Tu peux remarquer que c'est tout aussi court !

Publié : sam. 20/nov./2004 10:35
par Chris
Heu!!!

Pardon, excusez moi de vous déranger! :roll:

C'est bien ici, le forum de l'Académie Française? :lol:

Publié : sam. 20/nov./2004 12:38
par gansta93
Chris a écrit :Heu!!!

Pardon, excusez moi de vous déranger! :roll:

C'est bien ici, le forum de l'Académie Française? :lol:
Je me suis trompé d'adresse?
Arf dsl.
:jesors: