FAQ VCL
Компоненты\VirtualTreeView

:: Меню ::
:: На главную ::
:: FAQ ::
:: Заметки ::
:: Практика ::
:: Win API ::
:: Проекты ::
:: Скачать ::
:: Секреты ::
:: Ссылки ::

:: Сервис ::
:: Написать ::

:: MVP ::

:: RSS ::

Яндекс.Метрика

Как развернуть нод в TVirtualTreeView?

VirtualStringTree1.Expanded[Node] := true;
// Node - PVirtualNode, нод, который нужно развернуть


Как свернуть нод в TVirtualTreeView?

VirtualStringTree1.Expanded[Node] := false;
// Node - PVirtualNode, нод, который нужно свернуть


Как объеденить несколько ячеек в одну, подобно Excel?

VirtualStringTree1.TreeOptions.AutoOptions := VirtualStringTree1.TreeOptions.AutoOptions + [toAutoSpanColumns];
// В ячейках, которые стоят после длинного текста в первой ячейке, должно быть '' (пустая строка)


Как получить выделенный узел в TVirtualTreeView?

VirtualStringTree1.FocusedNode;


Как получить узел TVirtualTreeView над которым расположен курсор мыши?

// VirtualStringTree1.TreeOptions.PaintOptions.toHotTrack = true
VirtualStringTree1.HotNode;


Как отображать статичный текст в TVirtualTreeView?

// VirtualStringTree1.TreeOptions.StringOptions.toShowStaticText = true
procedure TForm1.VirtualStringTree1GetText(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
  var CellText: string);
begin
   case TextType of
      ttNormal: CellText := ...;
      ttStatic: CellText := 'статичный текст';
   end;
end;


Как запрерить перетаскивание колонки в TVirtualTreeView по условию?

procedure TForm1.VirtualStringTree1HeaderDragged(Sender: TVTHeader;
  Column: TColumnIndex; OldPosition: Integer);
begin
   if Sender.Columns.Items[Column].Position < 3 then
      Sender.Columns.Items[Column].Position := OldPosition;
end;


Как добиться того, чтобы одна из колонок занимала все доступное пространство TVirtualTreeView при изменении его размеров?

// Задаем индекс колонки, которая будет изменять свою ширину
VirtualStringTree1.Header.AutoSizeIndex := 2;
VirtualStringTree1.Header.Options.hoAutoResize := true;


Как заставить TVirtualTreeView вести себя так, словно оно всегда имеет фокус?

VirtualStringTree1.TreeOptions.PaintOptions := VirtualStringTree1.TreeOptions.PaintOptions + [toPopupMode];


Как заставить колонки изменять свою ширину пропорционально ширине TVirtualTreeView?

VirtualStringTree1.Header.Options := VirtualStringTree1.Header.Options + [hoAutoSpring];
// затем нужным колонкам в Options установить флаг coAutoSpring
// Важно! Свойство hoAutoSpring подавляется свойством hoAutoResize

При использовании материала - ссылка на сайт обязательна