tja, das ist halt ein Problem in deiner Implementierung.
Wenn alles in einer Struktur stehen soll, dann brauchst du eine zuverlässige Methode die Nodes zu unterscheiden.
Kann man eigentlich einen Index erhalten? (also der wievielte SubNode es innerhalb des Eltern-Knotens ist?)
Delphi-Quellcode:
var
Level, Index: Integer;
DataSys : TOSYSTEM;
begin
Level := VSTSystem.GetNodeLevel(Node);
Index := VSTSystem.GetNodeIndex(Node); // oder irgendwie so, aber
// nicht der globale Index, sondern nur der im Verhältnis zum Parent-Node
while TOSYSTEM(VSTSystem.GetNodeData(Node)^) = nil do
Node := Node.Parent;
DataSys := TOSYSTEM(VSTSystem.GetNodeData(Node)^);
case Level of
0: case Column of
0: Celltext := DataSys.Objekt;
end;
1: case Column of
0: Celltext := DataSys.Zentrale;
end;
2: case Index of
0: case Column of
0: Celltext := DataSys.IP;
end;
1: case Column of
0: Celltext := DataSys.COM;
end;
end;
end;
end;
Aber so ist es schwer mal etwas einzufügen oder zu ändern, da diese Indize ganz genau mit der Erstellung abhängen.
Wenn man da was einfügt, dann muß man es auch überll ändern, sonst gibt es Probleme.
Also einfacher wäre es, wenn du
- entweder für jeden Node ein eigenes Objekt erstellt, so nur die zugehörige Info drinsteht
- oder du nutzt ein Trägerobjekt
also ein Objekt, wo du dein TOSYSTEM drin ablegst und welches entweder ein Feld "Text" hat, welches für die Anzeige genutzt wird
oder wo zumindestens gespeichert wird, welche Wert des TOSYSTEM nun in genau diesem Node angezeigt werden soll.