Bonjour GNOZAL
ça fait plaisir de te parler en français de la france
J'aime bien le français de l'autre coté, mais je comprend pas toujours tout
Bah voila, j'ai fait une petite fenetre qui ouvre X lignes de gadgets selon le choix de l'utilisateur.
Mais voila comme à l'accoutumé, et pour ne pas renier à ma splendide réputation, ça merdoie
Je voudrais que selon le nombre que je choisi, y'es bien le bon nombre de lignes.
J'ai éssayé avec une variable "MaxBase", mais y'a décalage
Je pense que la solution la plus simple est celle que j'ai choisie, heureusement j'arrive déjà pas à faire marche le plus simple
Mais ma curiosité maladive, m'a fait poser cete question, pour pouvoir etre sur de compter les éléments d'une fenetre
Code : Tout sélectionner
Global Dim IdText(50)
Global Dim IdCombo(50)
Global Dim IdString(50)
Global MaxBase
#FenetreBase = 1
#LabelNbreBase = 10
#ComboNbreBase = 11
OpenWindow(#FenetreBase, 343, 206, 696, 50, "", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
CreateGadgetList(WindowID(#FenetreBase))
TextGadget(#LabelNbreBase, 15, 17, 100, 20, "Nombre de bases ")
ComboBoxGadget(#ComboNbreBase, 110, 15, 90, 300, #PB_ComboBox_Editable)
For i = 1 To 10
AddGadgetItem(#ComboNbreBase, - 1, Trim(Str(i)))
Next
Repeat
EvenementFenetre = WaitWindowEvent()
Select EvenementFenetre
Case #PB_Event_Gadget
Select EventGadget()
Case #ComboNbreBase
If EventType() = #CBN_SELCHANGE
If Val(GetGadgetText(#ComboNbreBase)) > MaxBase
For MaxBase = 1 To Val(GetGadgetText(#ComboNbreBase))
IdText(MaxBase) = TextGadget(#PB_Any, 10, 30 + (MaxBase * 30), 47, 20, "Base", #PB_Text_Center)
IdCombo(MaxBase) = ComboBoxGadget(#PB_Any, 50, 30 + (MaxBase * 30), 90, 300, #PB_ComboBox_Editable)
IdString(MaxBase) = StringGadget(#PB_Any, 150, 30 + (MaxBase * 30), 530, 20, "")
For t = 1 To 115
AddGadgetItem(IdCombo(MaxBase), - 1, Trim(Str(t)))
Next
Next
Else
For o = MaxBase To MaxBase - Val(GetGadgetText(#ComboNbreBase)) + 1 Step - 1
FreeGadget(IdText(o))
FreeGadget(IdCombo(o))
FreeGadget(IdString(o))
Next
MaxBase = o
EndIf
ResizeWindow(#FenetreBase, #PB_Ignore, #PB_Ignore, #PB_Ignore, GadgetY(IdText(MaxBase - 1)) + 30)
EndIf
EndSelect
EndSelect
Until EvenementFenetre = #PB_Event_CloseWindow