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