SetGadgetText funktioniert nicht mit TreeViewNodes?
Übersicht

![]() |
ArtemisBetreff: SetGadgetText funktioniert nicht mit TreeViewNodes? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Moin,
folgender Code sollte eigentlich alle doppelt angeklickten Nodes umbenennen. Tut er aber nicht. Code: [AUSKLAPPEN] SuperStrict
Framework BRL.MaxGUI Import BRL.Win32MaxGUI Import BRL.EventQueue Local window:TGadget = CreateWindow("Test", 200, 200, 200, 200, Null, WINDOW_CLIENTCOORDS | WINDOW_TITLEBAR) Local tree:TGadget = CreateTreeView(0, 0, 200, 200, window) Local root:TGadget = TreeViewRoot(tree) Local node:TGadget[6] node[0] = AddTreeViewNode("Ordner1", root) node[1] = AddTreeViewNode("Datei1", node[0]) node[2] = AddTreeViewNode("Datei2", node[0]) ExpandTreeViewNode(node[0]) node[3] = AddTreeViewNode("Ordner2", root) node[4] = AddTreeViewNode("Datei1", node[3]) node[5] = AddTreeViewNode("Datei2", node[3]) ExpandTreeViewNode(node[3]) Repeat WaitEvent If CurrentEvent.id = EVENT_WINDOWCLOSE Then End If CurrentEvent.id = EVENT_GADGETACTION And CurrentEvent.source = tree Then Local node:TGadget = TGadget(CurrentEvent.extra) SetGadgetText(node, "Angeklickt") EndIf Forever |
||
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst ModifyTreeViewNode nehmen... Eine Node ist ja kein Gadget, sonder eben eine ... Node ![]() |
||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
SetGadgetText kann man nur auf einem Gadget Anwenden. TreeViewNode ist ein Item. Verwende stattdessen einfach "ModifyGadgetItem" ![]() |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke.
Und wenn der Node jetzt ein Icon hat, wie bekomme ich raus, welches? Die Nodes können bei mir nämlich zwei verschiedene Icons haben, und wenn ich bei ModifyTreeViewNode icon weglasse kommt kein Icon. EDIT: Jetzt speichere ich im context-Feld des Nodes, welcher Typ es ist und kann das so später wieder abrufen. Geht das auch anders? |
||
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es gibt eine Methode ItemIcon(index)....
Ich habs nicht ausprobiert, aber mit der solltest du das aktuelle Icon abfragen können, und es gleich wieder übergeben können.... |
||
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nee,
das ist die Methode die von der Funktion GadgetItemIcon aufgerufen wird und die Gibt das Icon eines "List based Gadgets" also Tabber, ListBox,… zurück. TreeView funktioniert nicht: Code: [AUSKLAPPEN] SuperStrict
Framework BRL.MaxGUI Import BRL.Win32MaxGUI Import BRL.EventQueue Import BRL.Pixmap Import BRL.PNGLoader Local window:TGadget = CreateWindow("Test", 200, 200, 200, 200, Null, WINDOW_CLIENTCOORDS | WINDOW_TITLEBAR) Local icon:TIconStrip = LoadIconStrip("iconstrip.png") Local tree:TGadget = CreateTreeView(0, 0, 200, 200, window) SetGadgetIconStrip(tree, icon) Local root:TGadget = TreeViewRoot(tree) Local node:TGadget[6] node[0] = AddTreeViewNode("Ordner1", root, 0) node[1] = AddTreeViewNode("Datei1", node[0], 1) node[2] = AddTreeViewNode("Datei2", node[0], 2) ExpandTreeViewNode(node[0]) node[3] = AddTreeViewNode("Ordner2", root, 3) node[4] = AddTreeViewNode("Datei1", node[3], 4) node[5] = AddTreeViewNode("Datei2", node[3], 5) ExpandTreeViewNode(node[3]) Repeat WaitEvent If CurrentEvent.id = EVENT_WINDOWCLOSE Then End If CurrentEvent.id = EVENT_GADGETACTION And CurrentEvent.source = tree Then Local node:TGadget = TGadget(CurrentEvent.extra) ModifyTreeViewNode(node, "Angeklickt", node.itemIcon(0)) EndIf Forever Kommt bei node.itemIcon ein "Index out of range". EDIT: Hab mir grad den Source von BRL.MaxGUI angesehen und bin zum Schluss gekommen, dass das einfach nicht geht. |
||
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
mh, dann weiss ich auch nicht mehr weiter.....
Aber da du ja das Icon aus einer bestimmten Logik heraus setzt, solltest du ja jedesmal wieder wissen, was für ein icon da hingehört.... ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group