So oder so ähnlich sollte es, hoffe ich, funktionieren. Ich nehme an in deinem Thread arbeitest du ebenfalls mit einer TEntry-Instanz, aber es würde genau so mit mehreren String, Int etc. Parametern funktionieren. Folgende Funktion einfach aus dem Snychronize des Threads heraus ausrufen:
Delphi-Quellcode:
function TForm.SynchronizeTreeWithThreadData( ThreadData: TEntry);
var
Node: PVirtualNode;
TreeData: TEntry;
//...
begin;
//...
TreeData := TEntry.Create;
Node := VST.GetFirst;
while Assigned(Node)do
begin
// Daten aus aktuellem Knoten holen (hier nehme ich einfach mal an dass dein geposteter Code funktioniert)
TreeData := TEntries(VST.GetNodeData(Node)^);
// Daten vergleichen
If ( ThreadData.ID = TreeData.ID )
begin
TreeData.Progress = ThreadData.Progress;
// ...
end;
// Nächsten Knoten ermitteln
Node := VST.GetNext(Node);
end;
// ...
end;
Nur aus dem Kopf getippt, ich hoffe ich hab nicht zu viele Fehler reingeschlumpert