Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Pascal и Delphi / Иллюстрированный самоучитель по Delphi 6 / Часть III. Компоненты и программы / Использование компонентов общего назначения / Компоненты страницы Win3.1 /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
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  Обсудить в чате

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь