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


Автор: ZBugz 2.12.2011, 13:37
Как в новом virtual treeview сделать сортировку по клику хедера ?
В новой версии Revision 320 http://virtual-treeview.googlecode.com/svn/trunk/  убрали все свойстава у header.click

Было 
Код

LvHeaderClick(Sender: TVTHeader; Column: TColumnIndex; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Стало:
Код

LvHeaderClick(Sender: TVTHeader; HitInfo: TVTHeaderHitInfo);


Код бывшего клика:
Код

if Button = mbLeft then
 begin
   with Sender do
    begin
    {$IFDEF SortMainColumnOnly}
     if Column <> MainColumn then
       SortColumn := NoColumn
     else
     begin
      if SortColumn = NoColumn then
       begin
         SortColumn := Column;
         SortDirection := sdAscending;
       end
      else
     {$ELSE}
      SortColumn := Column;
     {$ENDIF}
        if SortDirection = sdAscending then
           SortDirection := sdDescending
         else
           SortDirection := sdAscending;
       Treeview.SortTree(SortColumn, SortDirection, False);
     {$IFDEF SortMainColumnOnly}
    end;
     {$ENDIF}
   end;
 end;

и сравнение колонок:
Код

procedure TMainForm.LvCompareNodes(Sender: TBaseVirtualTree; Node1,
  Node2: PVirtualNode; Column: TColumnIndex; var Result: Integer);
begin
 with TVirtualStringTree(Sender) do
  Result := WideCompareText(Text[Node1, Column], Text[Node2, Column]);
end;

Автор: MetalFan 2.12.2011, 16:24
Цитата(ZBugz @  2.12.2011,  13:37 Найти цитируемый пост)
убрали все свойстава

Не убрали, а объединили в record.
достаточно написать в начале обработчика 
Код

with HitInfo do
begin

а в конце end соответственно.
И все будет работать, как раньше.

Автор: ZBugz 2.12.2011, 16:32
Спасибо дорогой, все получилось smile 

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