![]() |
VirtualTreeview HeaderClickAutoSort dritter Zustand
Hallo!
VirtualTreeview kennt ja in Tree.Header.Options den Wert hoHeaderClickAutoSort. Wenn man den aktiviert und dann auf einen Columnheader klickt, toggelt er die Tree.Header.SortDirection hin und her. Also entweder sdAscending oder sdDescending. Soweit so gut. Ich könnte aber einen dritten Zustand gebrauchen, nämlich "gar nicht sortiert". Das würde zwar intern auch eine Sortierung bedeuten, allerdings nach einem Sekundärkriterium (entspricht im Grunde dem Ordinalwert des Pointers zu den Node-Daten). Lässt sich das irgendwie mit den vorhandenen VirtualTreeview-Optionen realisieren (derer gibts ja eine Menge) oder müsste ich das "zu Fuß" machen (OnHeaderClick etc.)? Grüße Cody |
AW: VirtualTreeview HeaderClickAutoSort dritter Zustand
SortDirection kennt nur sdAscending und sdDescending. Verwende den HeaderClick Event. Das könnte als Beispiel so aussehen:
Delphi-Quellcode:
Ich verwende noch die älteren VirtualTree Versionen 4 und 5. Kann bei einer neueren Version anders aussehen.
procedure ...vlvListHeaderClick(Sender: TVTHeader; Column: TColumnIndex;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button <> mbLeft then Exit; //=> with Sender, Treeview do begin if SortColumn > NoColumn then Columns[SortColumn].Options := Columns[SortColumn].Options + [coParentColor]; if (SortColumn = NoColumn) or (SortColumn <> Column) then begin SortColumn := Column; SortDirection := sdAscending; end else if SortDirection = sdAscending then SortDirection := sdDescending else SortDirection := sdAscending; if (SortColumn <> DefaultSortColumn) or (SortDirection <> DefaultSortDirection) then begin Columns[SortColumn].Color := u_Options.Options.DifferentSortColumnColor; end; SortDataList(FDataList); SortTree(SortColumn, SortDirection, False); end; end; Bis bald... Thomas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:44 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