TOutLine - просмотр иерархических структур.
Подобно компоненту TTreeview страницы Win32 компонент Tout-Line предназначен для отображения иерархических структур данных (каталогов, например). Элементом отображения является узел. Каждый узел имеет родительский узел и дочерние узлы. Исключение составляет узел самого верхнего уровня (он не имеет родительского узла) и узлы самых нижних уровней (они не имеют дочерних узлов),
Для каждого узла компонент создает объект класса TOutLineNode. Его свойства:
property Data: Pointers;
|
Указатель на связанные с узлом данные
|
property Expanded: Boolean;
|
Если содержит True, с узлом связан раскрытый список дочерних узлов
|
property FullPath: String;
|
Содержит полное имя узла со списком имен всех родительских узлов, разделенных символом ItemSeparator объекта ToutLine
|
property Hasltems: Boolean;
|
Содержит True, если с узлом связаны дочерние узлы
|
property Index: Longint;
|
Содержит уникальный идентификатор узла в компоненте ToutLine
|
property IsVisible: Boolean;
|
Содержит True, если узел виден в окне компонента ToutLine
|
property Level: Integer;
|
Определяет уровень иерархии узла. Узел самого верхнего уровня имеет уровень 0, его дочерние узлы - уровень 1, их дочерние узлы - уровень 2 и т. д.
|
property Text: String;
|
Определяет имя узла
|
property Topltem: Longint;
|
Содержит индекс своего родительского узла первого уровня (родительский узел нулевого уровня не виден в компоненте TOutLine)
|
Методы класса TOutLineNode:
procedure ChangeLevelBy(Value: TChangeRange) ;
|
Перемещает уровень узла на один вверх (Value=-1) или вниз(Value=+l) Закрывает список дочерних узлов
|
procedure Collapse; procedure FullExpand;
|
Раскрывает список всех своих дочерних узлов на всех уровнях
|
function GetFirstChild: TTreeNode;
|
Возвращает ссылку на первый дочерний узел или nil, если нет дочерних узлов
|
function GetPrevChild(Value: Longint): Longint;
|
Возвращает индекс узла, предшествующего узлу Value
|
TAttachMode = (oaAdd, oaAddChild, oalnsert) ; procedure MoveTo(Destination: Longint; AttachMode: TAttachMode) ;
|
Перемещает узел со всеми потомками в положение, определяемое индексом Destination и режимом AttachMode: oaAdd -добавить последним на том же уровне, что и Destination; oaAddChild -добавить последним к потомкам узла Destination; oalnsert - вставить на место Destination, который смещается ниже него на том же уровне
|
Свойства компонента TOutLine:
property Canvas: TCanvas;
|
Определяет канву для прорисовки компонента
|
property itemHeight: Integer;
|
Определяет высоту узлов
|
property Items[Index: Longint]: TOutlineNode;
|
Открывает доступ к узлу по его индексу
|
property ItemCount: Longing;
|
Содержит общее количество узлов
|
property Lines: TStrings;
|
Содержит список всех узлов
|
TOutlineOption = (ooDrawTreeRoot,
ooDrawFocusRect, ooStretchBitmaps) ; TOutlineOptions = set of Tout lineOption; property Options: TOutlineOptions;
|
Определяет атрибуты прорисовки: ooDraw TreeRoot - соединять линии узлов верхнего уровня; ooDrawFocusRect - выделять пунктиром сфокусированный узел; oostretch Bitmaps - масштабировать пиктограммы
|
TOutlineStyle = (osText, osPlus-
MinusText, osPictureText, osPlus-
MinusPictureText, osTreeText,
osTreePictureText) ;
property OutlineStyle: TOutlineStyle;
|
Задает стиль прорисовки: osText - выводится только текст(без линий); osPlusMinusText - текст и пиктограммы PicturePlus/PictureMinus;osPictureText -текст и пиктограммы PictureOpen/PictureClosed/PictureLeaf;osPlusMinus-PictureText - объединяет два предыдущих стиля; osTreeText - текст и линии связи между узлами; osTreePictureText - объединяет osTreeText и osPictureText
|
property PictureClosed: TBitmap;
|
Содержит пиктограмму узла с закрытым списком дочерних узлов. По умолчанию -закрытая папка
|
property PictureMinus: TBitmap;
|
Содержит пиктограмму узла с закрытым списком дочерних узлов. По умолчанию - пиктограмма со знаком минус
|
property PictureOpen: TBitmap;
|
Содержит пиктограмму узла с открытым списком дочерних узлов. По умолчанию - открытая папка
|
property PictureLeaf: TBitmap;
|
Содержит пиктограмму узла, не имеющего дочерних узлов. По умолчанию - пиктограмма документа
|
property PicturePlus: TBitmap;
|
Содержит пиктограмму узла с открытым списком дочерних узлов. По умолчанию - пиктограмма со знаком плюс
|
property Row: Longint;
|
Содержит индекс сфокусированного узла
|
property ScrollBars: TScroll-Style;
|
Определяет наличие полос прокрутки: ssNone - нет полос; ssHorizontal - горизонтальная полоса; ssVertical - вертикальная полоса; ssBoth - и горизонтальная, и вертикальная полоса
|
Методы компонента:
function Add(Index: Longint; const Text: String): Longint;
|
Добавляет узел с именем Text как последний на тот же уровень иерархии, что и узел index, и возвращает его индекс (режим oaAdd)
|
function AddChild(Index: Longint;
const Text: String): Longing;
|
Добавляет дочерний узел с именем Text к узлу index и возвращает его индекс (режим oaAddChild)
|
function AddChildObject(Index:
Longint; const Text: String; const Data: Pointer): Longint;
|
Добавляет дочерний узел с именем Text и данными Data к узлу index и возвращает его индекс
|
function AddObject(Index: Long
int; const Text: String; const Data: Pointer): Longint;
|
Добавляет узел с именем Text и с данными Data как последний на тот же уровень иерархии, что и узел index, и возвращает его индекс
|
procedure BeginUpdate ;
|
Блокирует перерисовку компонента перед вставкой/удалением нескольких узлов
|
procedure Clear;
|
Удаляет все узлы компонента
|
procedure EndUpdate;
|
Разрешает перерисовку компонента после вставки/удаления нескольких узлов
|
procedure FullCollapse;
|
Закрывает списки всех дочерних узлов на всех уровнях
|
procedure FullExpand;
|
Раскрывает списки всех дочерних узлов на всех уровнях
|
function GetDataItem(Value: Pointer): Longint;
|
Возвращает индекс узла по его данным
|
function GetItem(X, Y: Integer): Longint;
|
Возвращает индекс узла по его координатам
|
function GetTextItem(Value: String) : Longing;
|
Возвращает индекс узла по его имени
|
function Insert(Index: Longint;
const Text: String): Longing;
|
Вставляет узел с именем Text на место узла Index(режим oalnsert)
|
function InsertObj ect(Index:
Longint; const Text: String;
const Data: Pointer): Longint;
|
Вставляет узел с именем Text и данными Data на место узла index (режим oalnsert)
|
procedure LoadFromFile(const
FileName: String);
|
Загружает содержимое компонента из файла с именем FileName
|
procedure LoadFromFile(const FileName: Strings;
|
Сохраняет содержимое компонента в файле
|
procedure SetUpdateState(Value: Boolean);
|
С именем FileName если Value=True, соответствует BeginUp date, в противном случае - EndUpdate
|
Для компонента определены следующие события:
EOutlineChange = procedure
(Sender: TObject; Index: Longint)
of object;
property OnCollapse: EOut lineChange;Возникает при закрытии списка дочерних узлов узда Index
|
|
TOwnerDrawState = set of
(odSelected, odGrayed, odDisabled, odChecked, odFocused) ;
TListBox; Index: Integer; Rect:TRect; State: TOwnerDrawState) of Object;
property OnDrawItem: TDrawItemEvent;
|
Возникает при необходимости прорисовки узла index: Rect - прямоугольник прори совки; State - состояние узла (odSelected - узел выделен; odDisabled - узел запрещен для выбора; odFocused - узел сфокусирован)
|
EOutlineChange = procedure (Sender: TObject; Index: Longint) of object; property OnExpand: EOut lineChange;
|
Возникает при открытии списка дочерних узлов узла Index
|
назад - Вперёд
|