Page 1 sur 1

Treegadget

Publié : mer. 09/févr./2011 23:25
par Cagou77
Bonsoir, voilà j'arrive a déplier un treegadget
mais je n'arrive pas a replier un treegadget qui est déplier.
merci d'avance pour vos réponses.

Ps: je cherche à charger un treegadget depuis une table d'une base de données sqlite
si vous avez des suggestions elles seront les bien venus.

Re: Treegadget

Publié : jeu. 10/févr./2011 0:22
par falsam
Bonjour:)

Dans l'exemple classique d'un TreeGadget que tu trouveras ci-dessous, si tu cliques sur le Noeud du TreeGadget, celui-çi va se déplier et si tu cliques à nouveau sur ce même noeud, il va se replier.

Code : Tout sélectionner

Enumeration
  #MainForm
  #TGadget
EndEnumeration

Procedure MainFormShow()
  OpenWindow(#MainForm,0,0,400,300,"Tree Gadget Exemple 1",#PB_Window_ScreenCentered | #PB_Window_SystemMenu)
  TreeGadget(#TGadget,10,10,380,280)
EndProcedure

Procedure TgadgetLoad()
    AddGadgetItem (#TGadget, -1, "Noeud ", 0, 0)          
    AddGadgetItem (#TGadget, -1, "Sous-élément 1", 0, 1)         
    AddGadgetItem (#TGadget, -1, "Sous-élément 2", 0, 1)
    AddGadgetItem (#TGadget, -1, "Sous-élément 3", 0, 1)
    AddGadgetItem (#TGadget, -1, "Sous-élément 4", 0, 1)
    AddGadgetItem (#TGadget, -1, "Sous-élément 5", 0, 1)
    AddGadgetItem (#TGadget, -1, "Sous-élément 6", 0, 1)
EndProcedure


MainFormShow()
TgadgetLoad()

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Gadget

    Case #PB_Event_CloseWindow
      End
  EndSelect
ForEver
Pour remplir ton Treegadget avec une base de données Sqlite tu ouvres ta base de données, tu effectues ta requête de sélection et enfin tu intègres une boucle de lecture séquentiel du résultat obtenu par ta requête.

Tu trouveras ci-dessous la procédure TgadgetLoad() à intégrer dans le code ci-dessus.
J'ouvre une base de données contacts dans lequel se trouve une table adresses.

Code : Tout sélectionner

;Ouverture de la base de données "Contact"
Procedure TgadgetLoad()
  If OpenDatabase(#Database, GetCurrentDirectory()+"/contact.db3", "", "", #PB_Database_SQLite)

    ;Exécution de la requête de selection
    If DatabaseQuery(#Database, "select * from adresses order by nom asc")
      
      ;Ici j’insère un noeud de pliage/dépliage
      AddGadgetItem (#TGadget, -1, "Contact", 0, 0) 
      While NextDatabaseRow(#Database)
        AddGadgetItem (#TGadget, -1, GetDatabaseString(#Database, 0), 0, 1) 
      Wend
      FinishDatabaseQuery(#Database)
    Else
      MessageRequester("Erreur", "Impossible d'executer la requete: "+DatabaseError())
    EndIf
EndIf
GetDatabaseString(#Database, 0) "0" représente la première colonne du résultat de requête Sql

Re: Treegadget

Publié : jeu. 10/févr./2011 13:58
par Cagou77
Bonjour, ce que je veux c'est déplier et replier le treegadget sur choix d'un popupmenu ou d'un buttongadget.

Re: Treegadget

Publié : jeu. 10/févr./2011 14:25
par zaphod
...

Re: Treegadget

Publié : jeu. 10/févr./2011 18:41
par Cagou77
Parfait, Merci