Ich habe hier ein Project wo ich über mehrere normale Editfelder einen VirtualStringTree befülle. Das funktioniert soweit auch gut.
Was ich nicht herausfinde ist, wie ich die Felder im VST ändern kann über Editfelder, also ohne mit F2 direct im VST zu schreiben.
Eine Möglichkeit wie z.B. "Data := VST.ChangeNode" oder ähnliches finde ich da nicht.
Wie kann ich einen Eintrag über einfache Editfelder ändern ohne F2 zu benutzen?
Gruß
Michael
Code:
Code: Alles auswählen
type
PTreeData = ^TTreeData;
TTreeData = record
Anzeigename : String;
Image : String; //nicht sichtbar
FQDN : String; //nicht sichtbar
IP : String; //nicht sichtbar
Username : String; //nicht sichtbar
PW : string; //nicht sichtbar
Typ : string; //PuTTY, VMware,...
PortName : string; //SSH, Telnet,...
Port : string; //22,23,...
end;
procedure TForm1.AddButtonClick(Sender: TObject);
var
Data: PTreeData;
XNode: PVirtualNode;
begin
XNode := VST.AddChild(VST.FocusedNode);
Data := VST.GetNodeData(Xnode);
//Sichtbares Feld in TreeView
Data^.Anzeigename:= AnzeigenameLabeledEdit.Text;
//Nicht sichtbare Felder in TreeView
Data^.Image := '2'; //Symbol in ImageList24x24
Data^.FQDN :=FQDNLabeledEdit.Text;
Data^.IP :=IPLabeledEdit.Text;
Data^.Username :=UsernameLabeledEdit.Text;
Data^.PW :=PWLabeledEdit.Text;
Data^.Portname :=PortNameComboBox.Text;
Data^.Port :=PuTTYPortLabeledEdit.Text;
VST.Header.Columns.Items[0].Text:='Spalte0'; //Sortierzeichen entfernen fals vorhanden, da nicht sicher ob nach hinzufügen noch korrekt sortiert ist
VST.Expanded[VST.FocusedNode]:=True;
end;
end;