Seite 1 von 1
Treegadget: übergeordneten Eintrag eines Sublevels auslesen
Verfasst: 06.04.2006 12:29
von dysti
Hey,
ich lese eine Datei mit variablen Inhalt aus und fülle ein Treegadget damit.
Sieht etwa so aus:
Seite1
|
|-----Absatz1
|-----Absatz2
|
Seite2
|
|-----Absatz1
|-----Absatz2
|-----Absatz3
Den Inhalt und Position und den Sublevel kann ich auslesen.
Was ich möchte ist, wenn ich z.B. Absatz2 von Seite2 anklicke, möchte ich den Textinhalt des übergeordneten Subleveleintrags: hier "Seite2" als Ergebnis auslesen.
Weiss leider nicht mehr weiter.
Verfasst: 06.04.2006 13:07
von Tafkadasom2k5
Wenn du das Treegadget füllst, dann baue dir anstatt deine normalen "Stringinhalte" (ich nehme an, dass deine Unterpunkte Strings sind), eigene Strukturen rein:
Structure Item
Name.s
Ordner.s
End Structure
In *Itemname*.Ordner schreibst du einfach immer rein, aus in welchem Unterpunkt du dich gerade befindest.
Beim Abrufen schaust du dir einfach nur wieder die Variable an, und weißt bescheid.
Klingt ein wenig konfus, aber vielleicht gehts ja so.
Poste sonst doch mal den Code, und ich gucke, wo man ansetzen könnte.
Gr33tz
Tafkadasom2k5
Verfasst: 06.04.2006 13:43
von edel
Code: Alles auswählen
;///////////////////////////
;/ Declare variables
Define WindowTitle.s = "Test"
Define CX.l = 420
Define CY.l = 315
Define *hWindow.long
Define *hButton.long
Define *hTView.long
Define WindowEvent.l
Define n.l , hItem.l
Define msg.s
;///////////////////////////
;/ Open window
*hWindow = OpenWindow(#PB_Any,#PB_Ignore,#PB_Ignore,CX,CY,WindowTitle)
;///////////////////////////
;/ Gadgets
CreateGadgetList(*hWindow\l)
*hTView = TreeGadget(#pb_any,5,5,300,300)
*hButton = ButtonGadget(#pb_any,313,5,100,100,"bla")
AddGadgetItem(*hTView,0,"parent",0,1)
AddGadgetItem(*hTView,2,"Child",0,1)
AddGadgetItem(*hTView,3,"Child",0,1)
AddGadgetItem(*hTView,4,"parent2",0,0)
AddGadgetItem(*hTView,6,"Child2",0,1)
AddGadgetItem(*hTView,7,"Child2",0,1)
;///////////////////////////
;/ Window eventloop
Repeat
WindowEvent = WaitWindowEvent()
IF WindowEvent = #PB_Event_Gadget
If EventGadget() = *hButton
n = GetGadgetState(*hTView)
hItem = SendMessage_(*hTView\l,#TVM_GETNEXTITEM,#TVGN_PARENT,GadgetItemID(*hTView, n))
buffer.s = space(100)
tv.TV_ITEM
tv\pszText = @buffer
tv\mask = #TVIF_TEXT|#TVIF_HANDLE
tv\hItem = hItem
tv\cchTextMax = 100
SendMessage_(*hTView\l,#TVM_GETITEM,0,tv)
Debug buffer
Endif
Endif
Until WindowEvent = #WM_CLOSE
;///////////////////////////
;/ Exit application
End
Verfasst: 06.04.2006 13:43
von dysti
Hey Tafkadasom2k5,
Das Problem fängt an, wenn man z.B. Seite2-> Absatz2 ausgwählt hat,
dann Seite1->Absatz1 und
-> dann direkt Absatz3 von Seite2 anklickt. Da steht dann in der gespeicherten Variablen dann Seite1 noch drin und nicht Seite2
oder habe ich dein Hinweis nicht verstanden.
gruß
Dysti
Verfasst: 06.04.2006 16:38
von dysti
Danke, Super.
Das mit den Zeigern und Strukturen muss ich mir noch reinziehen,
damit ich verstehe was ihr gemeint habt.
Auf jeden Fall läuft es so wie erwartet. Bin einfach happy.
Dysti