Panelgadget() et gadget dynamiques, possible?
Publié : mer. 04/oct./2006 20:18
Hello, j'essaie un panel pouvant ajouter des onglets à la volée avec des gadgets dynamiques. le problème c'est pour redonner le focus aux gadgets des onglets précédents.
Explication : ajout de plusieurs onglets, au besoin. C'est toujours le dernier onglet ajouté (ou créé) qui conserve leurs fonctions aux gadgets. Dès que l'on veut retourner sur un onglet précédent, les fonctions restent sur le dernier onglet créé.
exemple: Cliquez plusieurs fois sur le bouton ONGLET ajoutera un onglet comportant les mêmes gadgets, mais en revenant à un onglet précédent, vous ne le pourrez plus.
Ma question est comment rendre les fonctions aux onglets précédents en mode dynamique? car je n'y parviens pas même avec GetGadgetState()
Si je me suis bien fais comprendre, auriez-vous une idée? si la chose est réalisable...
@+
Explication : ajout de plusieurs onglets, au besoin. C'est toujours le dernier onglet ajouté (ou créé) qui conserve leurs fonctions aux gadgets. Dès que l'on veut retourner sur un onglet précédent, les fonctions restent sur le dernier onglet créé.
exemple: Cliquez plusieurs fois sur le bouton ONGLET ajoutera un onglet comportant les mêmes gadgets, mais en revenant à un onglet précédent, vous ne le pourrez plus.
Code : Tout sélectionner
;CODE EN PB V4
Enumeration
#Win_
#PANEL
EndEnumeration
If OpenWindow(#Win_,0,0, 400, 200,"Panel dynamique test", #PB_Window_SystemMenu |#PB_Window_WindowCentered |#PB_Window_TitleBar)=0 Or CreateGadgetList(WindowID(#Win_))=0
End
EndIf
PanelGadget(#PANEL,0,30,400,150)
AddGadgetItem(#PANEL, -1, "Onglet")
btnCreate = ButtonGadget(#PB_Any,40,85,100,25,"ONGLET")
btnClose = ButtonGadget(#PB_Any,145,85,100,25,"FERMER")
CloseGadgetList()
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
Select EventGadget()
Case btnCreate
AddGadgetItem (#PANEL, -1, "Onglet")
btnCreate = ButtonGadget(#PB_Any,40,85,100,25,"ONGLET")
btnClose = ButtonGadget(#PB_Any,145,85,100,25,"FERMER")
Case btnClose
RemoveGadgetItem(#PANEL, GetGadgetState(#PANEL))
EndSelect
EndIf
Until Event= #PB_Event_CloseWindow
End
Si je me suis bien fais comprendre, auriez-vous une idée? si la chose est réalisable...
@+