Hallo,
ich wollte mich mit dem VirtualStringTree auseinandersetzen, indem ich
dieses Tutorial hier durchmache.
Ich habe jetzt also ein VST mit sichtbarem Header und 5 Columns. Bei dem Klick auf den Header werden die Einträge sortiert (wie beim Explorer).
Das Problem was ich jetzt jedoch habe ist das wenn mann doppelt auf den Header klickt eine
AV produziert wird.
Und zwar an dieser Stelle:
Delphi-Quellcode:
PTreeData = ^TTreeData;
TTreeData = record
Column :array[0..4] of String;
end;
{...}
procedure TForm1.VSTCompareNodes(Sender: TBaseVirtualTree; Node1,
Node2: PVirtualNode; Column: TColumnIndex; var Result: Integer);
var
Data1: PTreeData;
Data2: PTreeData;
begin
Data1:=vst.GetNodeData(Node1);
Data2:=vst.GetNodeData(Node2);
if (not Assigned(Data1)) or (not Assigned(Data2)) then
Result:=0
else
Result:=CompareText(Data1.Column[Column], Data2.Column[Column]); // < GENAU DA //
end;
Zum besseren Verständnis habe ich ein kleines Beispiel-projekt erstellt in dem man dieses Verhalten beobachten kann (siehe Anhang).
Vielen Dank im Vorraus an alle.
Mike