Hi,
Ein Neuling der vor kurzem die VirtualTreeView entdeckt hat, sucht Rat.
Ich benutze so eine TreeView für eine Kategorien Auflistung. Die Kategorien/Subkat. befinden sich in einer
SQL Datenbank und werden bei jedem Expand-Event herausgelesen und hinzugefügt.
Allerdings muss ich auch neue Kategorien anlegen können. Habe dazu folgenden Code geschrieben:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
node: PVirtualNode;
data: PTreeData;
begin
if tree.FocusedNode <> nil then begin
node := tree.AddChild(tree.FocusedNode);
data := tree.GetNodeData(node);
data.Name := tree.Text[node, 0];
tree.Selected[node] := true;
tree.EditNode(node, 0);
end;
Dies erstellt einen neuen Node als Child des selektierten Nodes, setzt den Fokus darauf und aktiviert den editing Modus.
Beim "OnNewText" Event habe ich jetzt ein paar Zeilen geschrieben, die den eingegeben Text in die Daten des neuen Nodes schreibt.
Allerdings wird auch ein leerer Text angenommen. Wenn nichts eingegeben wird, sollte der neu erstellte Node eigentlich gelöscht werden.
Doch irgendwie krieg ich das nicht hin, bei welchem Ereignis ich auch immer versuche.
OnNewText, onEditingCanceled etc.
Wo würdet ihr sowas schreiben?