Einzelnen Beitrag anzeigen

mytbo

Registriert seit: 8. Jan 2007
461 Beiträge
 
#2

AW: VirtualTreeview HeaderClickAutoSort dritter Zustand

  Alt 15. Feb 2021, 17:16
SortDirection kennt nur sdAscending und sdDescending. Verwende den HeaderClick Event. Das könnte als Beispiel so aussehen:
Delphi-Quellcode:
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;
Ich verwende noch die älteren VirtualTree Versionen 4 und 5. Kann bei einer neueren Version anders aussehen.

Bis bald...
Thomas
  Mit Zitat antworten Zitat