Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > VirtualStringTree сортировка...


Автор: Erazer 17.11.2009, 03:21
Есть у меня VirtualStringTree, при щелчке на хедере колонки сортировка  в нем происходит след образом:

Код

//------------------------------------------------------------------------------
// Изменяем порядок сортировки у кликнутой колонки и пересортировываем дерево.
//------------------------------------------------------------------------------
  procedure TfmMain.VTHeaderClick(Sender: TVTHeader; Column: TColumnIndex;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
    VT.Header.SortColumn := Column;
    if VT.Header.SortDirection = sdAscending then
    begin
      VT.Header.SortDirection := sdDescending;
      VT.SortTree(Column, VT.Header.SortDirection);
    end
    else begin
      VT.Header.SortDirection := sdAscending;
      VT.SortTree(Column, VT.Header.SortDirection);
    end;
end;



Но, она дает какие-то странные как мне кажется результаты: 
user posted image
user posted image
user posted image
Хотя когда дело касается сортировки первой колонки,со списком файлов то все в порядке  smile 
user posted image
Никак не пойму почему колонка "Title" и прочие сортируеются криво, а "Filename" как надо :(

Автор: Dom 17.11.2009, 11:17
А какой код содержится в OnCompareNodes?

Автор: Erazer 2.12.2023, 18:47
Цитата(Dom @ 17.11.2009,  11:17)
А какой код содержится в OnCompareNodes?

Спасибо тебе, мил человек! Сегодня, я наконец-то понял что ты имел в виду, и допилил код в этой процедуре чтобы чтобы правильно сортировались все колонки, а не одна, которая там была указана! 14 лет спустя... smile 

Автор: ZBugz 4.12.2023, 07:03
Дык правильный код выкладывай smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)