Page 1 sur 1
[Résolu] Ajout automatique de Gadget + ContainerGadget
Publié : ven. 12/oct./2012 11:48
par Golfy
Bonjour à tous,
1) j'ai plusieurs gadgets que je voudrais ajouter automatiquement (découverte de modules domotiques) mais les coordonnées pourraient dépasser la taille de la fenêtre principal (openwindow).
Existe-t-il un "ascenseur" (scrollgadget) dans ce cas ? ou quel gadget dois-je employer ?
2) j'aimerai utiliser les panel (pour même raison mais aussi avoir plusieurs "vues" ou plusieurs fonctions). Dois-je utiliser un ContainerGadget pour chaque onglet du panel, ou bien chaque panel est défini (comment ajouter dynamiquement un gadget alors ?), etc...
des exemples de codes m'intéressent pour comprendre et pouvoir adapter, voir créer mon système
Re: Ajout automatique de Gadget + ContainerGadget
Publié : ven. 12/oct./2012 12:25
par Ar-S
Perso je trouve plus clair d'utiliser un ContainerGadget.
ça s'avère aussi bien pratique lorsque tu dois cacher/afficher une série de gadgets.
Pour tes gadgets ajoutés, pourquoi ne redimensionnes tu pas simplement la fenêtre lors de l'ajout de ces gadgets avec un
Code : Tout sélectionner
ResizeWindow(#Fenetre, 1, 1, LargeurWindow + Largeur Gadget, HauteurWindow + hauteurgadget )
Re: Ajout automatique de Gadget + ContainerGadget
Publié : ven. 12/oct./2012 12:44
par Fred
Essaie avec ScrollAreaGadget()
Re: Ajout automatique de Gadget + ContainerGadget
Publié : ven. 12/oct./2012 12:52
par falsam
Avec un exemple (j'ai été grillé par le Maître des lieux :p)
Code : Tout sélectionner
Enumeration
#Mainform
#Container
EndEnumeration
Define.l Event, WEvent, MEvent, GEvent, TEvent
Global WindowStyle.i=#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered, X.i
Procedure Open_MainForm()
OpenWindow(#Mainform, 0, 0, 500, 400, "New Form", WindowStyle)
ScrollAreaGadget(#Container, 0, 0, 500, 400, 450, 1500,#PB_ScrollArea_BorderLess)
For X=1 To 50
TextGadget(#PB_Any, 10, X*25, 50, 20, "Item "+Str(X))
StringGadget(#PB_Any, 60, X*25, 150, 20, "Item "+Str(X))
Next
CloseGadgetList()
EndProcedure
Open_MainForm()
;Tu découvres un gadget à ajouter
OpenGadgetList(#Container)
ListViewGadget(#PB_Any, 10, X*25, 300, 100)
CloseGadgetList()
Repeat
Event = WaitWindowEvent(10)
WEvent = EventWindow() ;different de WindowEvent() :p (oui je me suis fais avoir !!!)
MEvent = EventMenu()
GEvent = EventGadget()
TEvent = EventType()
Select Event
Case #PB_Event_Gadget
Select GEvent
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
[Résolu] Re: Ajout automatique de Gadget + ContainerGadget
Publié : ven. 12/oct./2012 14:28
par Golfy
falsam a écrit :Avec un exemple (j'ai été grillé par le Maître des lieux :p)
oui, mais tu as fourni un exemple parfait ! j'ai compris comment fonctionne ScrollAreaGadget
C'est exactement ce qu'il me faut
Merci à tous !
Re: Ajout automatique de Gadget + ContainerGadget
Publié : ven. 12/oct./2012 14:50
par Golfy
Ar-S a écrit :Perso je trouve plus clair d'utiliser un ContainerGadget.
ça s'avère aussi bien pratique lorsque tu dois cacher/afficher une série de gadgets.
Pour tes gadgets ajoutés, pourquoi ne redimensionnes tu pas simplement la fenêtre lors de l'ajout de ces gadgets avec un
Code : Tout sélectionner
ResizeWindow(#Fenetre, 1, 1, LargeurWindow + Largeur Gadget, HauteurWindow + hauteurgadget )
Rien ne m'empèchera d'utiliser un ScrollAreaGadget dans un ContainerGadget
ton idée est bonne mais lorsque tu ajoutes des gadgets (comme des courbes de températures ou autres...) à un moment, tu risque fortement de dépasses la hauteur de l'écran physique
Par contre, tu utilises ContainerGadget dans PanelGadget ou bien PanelGadget est déjà une sorte de container ? en gros quelles sont les différences ?
Dans mon esprit, je voyais un onglet "Tableau de bord", un onglet "RdC" et un autre "1er étage" me permettant d'interagir avec mes modules (par l'intermédiaire des gadgets créés dynamiquement pour la petite histoire).
Enfin un onglet "Conditions" ou "Evènements" pour automatiser certaines tâches... ce dernier point, on en reparlera dans un autre topic
