Hallo Leute,
Ich benutze die VirtualStringTree Komponente und habe eine Frage zur Sortierung.
Wenn ich auf MainColumn klicke, dann wird das zwar sortiert, aber sieht ca. so aus:
1
10
100
101
...
110
111
...
2
20
usw.
Wie kann ich nach "1,2,3,4 ... 99,100,101" usw Sortieren?
THX voraus
Hier der Code (aus der Beispieldatei):
Delphi-Quellcode:
procedure TMain_Form.VST_DBHeaderClick(Sender: TVTHeader;
Column: TColumnIndex; Button: TMouseButton; Shift: TShiftState; X,
Y: Integer);
begin
if Button = mbLeft then
begin
with Sender do
begin
if Column <> MainColumn then
SortColumn := NoColumn
else
begin
if SortColumn = NoColumn then
begin
SortColumn := Column;
SortDirection := sdAscending;
end
else
if SortDirection = sdAscending then
SortDirection := sdDescending
else
SortDirection := sdAscending;
Treeview.SortTree(SortColumn, SortDirection, False);
end;
end;
end;
end;
Delphi-Quellcode:
procedure TMain_Form.VST_DBCompareNodes(Sender: TBaseVirtualTree; Node1,
Node2: PVirtualNode; Column: TColumnIndex; var Result: Integer);
var
Data1, Data2: PTreeData;
begin
Data1 := Sender.GetNodeData(Node1);
Data2 := Sender.GetNodeData(Node2);
Result := CompareText(Data1.ID, Data2.ID);
end;