ich würde immer erst prüfen ob der NodeData record assigned ist bevor ich mit diesem arbeite:
Delphi-Quellcode:
procedure TForm1.VST1IncrementalSearch(Sender: TBaseVirtualTree;
Node: PVirtualNode; const SearchText: WideString; var Result: Integer);
var
s1, s2: string;
Archiv: TArchiv;
NodeData: PNodeData;
begin
NodeData := vst1.getnodedata(node);
if Assigned(NodeData) then
begin
Archiv := TArchiv(vst1.getnodedata(node)^);
...
end;
end;
Ich frage mich auch wo du den Typ PNodeData (oder ähnlich) deklarierst?
Die Daten des Knoten sind meines Wissens nach immer ein Pointer auf einen Record.
In diesem Record kannst du dann wenn unbedingt nötig dein TArchiv verwalten.
Schau dir am besten einmal die Demos zum VirtualStringTree an, diese sind auf der Downloadseite verfügbar.