8 8 8 8 8 8 8 8 8 8 8 8 8 8
8
8
|
|
TOutLine - просмотр иерархических структур - Программирование от RIN.RU
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, osPlusMinusText, osPictureText, osPlusMinusPictureText, 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: Longint; 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 |
8 8 8
| |
|
|