![]() |
[VirtualStringTree] Sortierung Frage.
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; |
Re: [VirtualStringTree] Sortierung Frage.
Hallo,
es sollte genügen, die Vergleichsroutine anzupassen. Falls die IDs nur ganzzahlige Werte enthalten, geht es so:
Delphi-Quellcode:
Vielleicht solltest du noch eine Fehlerbehandlung vorsehen.
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); Result := StrToInt(Data1.ID) - StrToInt(Data2.ID); end; Gruß Hawkeye |
Re: [VirtualStringTree] Sortierung Frage.
:oops:
Vielen Dank dir :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz