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

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

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

Message 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
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message 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.
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message 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
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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!
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message 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...
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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:
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message 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
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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.
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message 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 !!!!
Denis

Bonne Jounée à tous
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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.
Aranoth
Messages : 293
Inscription : sam. 24/janv./2004 12:00
Localisation : Toulouse (31)
Contact :

Message 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:
Débutant en programmation, notament en C++ ?
Vous souhaitez apprendre ?
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

GRRR.
Enfin bon...
Moi au moins, je ne parle pas en SMS :-P.
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message 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 !
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Heu!!!

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

C'est bien ici, le forum de l'Académie Française? :lol:
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

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