je crois que le mieux c'est de reprendre ton exemple et de modifier les valeurs de tes gadgets pour en percevoir les finesses, donc revoilà ton code modifié dans certaines tailles te montrant les possibilités et essaye de voir par toi même où ils se placent en fonction des coordonnées que tu leur donne.
mais en effet, quand tu crées un gadget dans un onglet, ses coordonées sont dépendantes de l'onglet, non de la fenêtre mére.
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 350, 300, #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, 50, 50, 250, 170)
AddGadgetItem(0, -1, "Onglet 1")
;ButtonGadget(1, 10, 30, 120, 20, "Bouton dans onglet 1")
ButtonGadget(1, 20, 10, 120, 20, "Bouton dans onglet 1")
AddGadgetItem(0, -1, "Onglet 2")
;ButtonGadget(2, 10, 30, 120, 20, "Bouton dans onglet2")
ButtonGadget(2, 0, 0, 120, 20, "Bouton dans onglet2")
CloseGadgetList()
SetGadgetState(0, 0)
ButtonGadget(3, 10,250, 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
Voilà, j'espère que c'est plus clair et que tu vas pouvoir avancer.
fais un comparatif de ce code et de celui d'avant pour voir les différences.
--------------------------------------------------------------------------------
Pendant que j'y suis, concernant ton code Base64, je trouve l'exemple concluant et bien fait... mais pourquoi mettre une chiée + 15 arobases dans le stringgadget de départ ? m'a fallu 1h30 ~ pour tout effacer et faire un test . sinon génial ton cryptage rapide.
Allez @+ jacobus