Einzelnen Beitrag anzeigen

Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
946 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

VirtualStringTree Daten kopieren und speichern

  Alt 3. Aug 2015, 10:20
Hallo,

ich kopiere je nach Auswahl Daten von einem VST in ein anderes VST(siehe Bild).
Delphi-Quellcode:
procedure TSourceButtonPanel.DataFromSourceToTarget(All : Boolean);
var
  NE : TVTVirtualNodeEnumerator;
  SourceData : PNodeData;
  DestData : PNodeData;
begin
  if (Assigned(FSourceView) and Assigned(FTargetView)) then
  begin
    if All then FSourceView.SelectAll(true);
    NE := FSourceView.SelectedNodes(false).GetEnumerator;
    while NE.MoveNext do
    begin
      SourceData := FSourceView.GetNodeData(Ne.Current);
      DestData := FTargetView.GetNodeData(FTargetView.AddChild(nil));
      CopyNodeData(DestData, SourceData);
    end;
    FSourceView.DeleteSelectedNodes;
  end;
end;
Da die Datensätze im unteren VST angezeigt werden, scheint das ganze zu funktionieren.
Nur funktioniert das Speichern nicht
Delphi-Quellcode:
procedure TToolIniLoader.WriteFile;
var
  Node : PVirtualNode;
  Data : PNodeData;
begin
  FEntryCount := 0;
  FVST.BeginUpdate;
  Node := FVST.GetFirst();
  while Node <> nil do
  begin
    Data := FVST.GetNodeData(Node);
    NodeDataToIni(Data^);
    Node := FVST.GetNext(Node);
    Inc(FEntryCount);
  end;
  FVST.EndUpdate;
end;
Data ist zwar ungleich NIL, aber leer. Nachdem Zugriff sind im VST die Nodes zwar noch da, aber GetText bringt nur ''.

Kennt jemand das Problem und/oder die Lösung?
Miniaturansicht angehängter Grafiken
testdemo.png  
Angehängte Dateien
Dateityp: pas TestDemo.pas (1,8 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat