MaxGUI - Alle Elemente einer Treeview einzeln ansprechen?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: MaxGUI - Alle Elemente einer Treeview einzeln ansprechen?

BeitragMo, Sep 03, 2012 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
es geht mal wieder um eine Treeview. Ich habe eine Treeview, welche wie folgt aussieht:
user posted image

Ich muss nun jedes einzelne Objekt in der Treeview durchgehen. Sollte das momentan "angeschaute" Objekt ein Verzeichnis (Bild: Ordner) sein, soll auch in dem Verzeichnis jeweils jedes Objekt durchgegangen werden, usw. bis man das Ende "erreicht" hat.
Achja: Das oberste Objekt - quasi die Wurzel - kann weggelassen werden.
Wie kann ich das anstellen? Gibt es da Befehle? Ich habe es schon versucht via "SelectTreeViewNode()", aber da habe ich das Problem, dass ich nicht "weitergehen" kann.

ich hoffe ihr könnt mir helfen.
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Xeres

Moderator

BeitragMo, Sep 03, 2012 21:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Benutzte nicht die Treeview um deine Daten zu verwalten, sondern zeichne die Treeview so, wie deine Daten aussehen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

CO2

ehemals "SirMO"

BeitragMo, Sep 03, 2012 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie meinst du das?
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Xeres

Moderator

BeitragMo, Sep 03, 2012 22:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast Listen die Listen beinhalten. Die alle durch zu gehen stellt kein Problem dar. Ob du die Datenstruktur nun als Treeview darstellst oder irgendwie anders, scheint mir für die Problemstellung egal zu sein.
Wie sieht denn der Type aus, in dem zu die Treeview Daten hast?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

CO2

ehemals "SirMO"

BeitragDi, Sep 04, 2012 8:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Der Type für die Elemente sieht wie folgt aus BlitzMax: [AUSKLAPPEN]
Type TFile
Field Path:String
Field Size:String
Field ID:String
Field Typ:String
End Type


Die Type-Objekte werden über das GadgetExtra an den jeweiligen Eintrag in der Treeview gebunden, d.h. ich arbeite komplett ohne Listen...

EDIT:
Zur Erklärung des Types:
- Path: Speichert vorerst den Stammpfad der Datei (Klickt der Benutzer auf "Speichern" wird hier nur der Name gespeichert)
- Size: Größe der Datei
- ID: ID der Datei (wird automatisch berechnet)
- Typ: Kann 2 Werte annehmen: 1 = Datei; 2 = Verzeichnis
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Der Eisvogel

BeitragDi, Sep 04, 2012 10:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo CO2,

schau die mal das Feld "kids" von einem Gadget an. Das sollte genau das sein, was du brauchst. Du fängst mit den "kids" von deinem Root-Objekt an und gehst dann immer wieder durch die "kids"der "kids".

MfG
Der Eisvogel
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

blackgecko

BeitragDi, Sep 04, 2012 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Die Type-Objekte werden über das GadgetExtra an den jeweiligen Eintrag in der Treeview gebunden, d.h. ich arbeite komplett ohne Listen...

Hm, kann sein, dass das Geschmacksache ist, aber ich mache das grundsätzlich anders herum. Erst die Technik zum Laufen bringen, dann ein Interface drumherum bauen.
In dem Fall also jedes Objekt kriegt ein Field wo sein Gadget drinsteht. Und eine Liste mit den Unterobjekten wird zusätzlich geführt. Beim Erstellen (mit create oder so) wird das parent-Objekt als Parameter mitgegeben und dann dessen add_child-Methode aufgerufen.
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax
Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die.

Xeres

Moderator

BeitragDi, Sep 04, 2012 20:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann ist das Problem ja klar: Du arbeitest komplett ohne Listen.
Arbeite mit den richtigen Datenstrukturen, die möglichst weit von der Darstellung getrennt sind. Die GUI soll die Daten bloß anzeigen, nicht verwalten.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group