Treegadget: übergeordneten Eintrag eines Sublevels auslesen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Treegadget: übergeordneten Eintrag eines Sublevels auslesen

Beitrag 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.
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag 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
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag 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
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag 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
Antworten