TmsDBTreeView

версия 1.0 (последнее изменение 27 августа 2005)


Copyright © 2002 - 2005 mSunSoftware
All rights reserved.

e-mail: support@msunsoftware.com
web site: http://www.vcl.msunsoftware.com/

Содержание
Иерархия:

TObject
     |
TPersistent
     |
TComponent
     |
TControl
     |
TWinControl
     |
TCustomTreeView


Описание:

TmsDBTreeView это элемент управления, который отображает иерархический список узлов, где каждый узел связан с записью таблицы Базы Данных. В компоненте используется два типа узлов: папки и файлы. Папка может включать в себя другие узлы, но не предназначена для записей БД содержащих данные. Файл не может включать в себя другие узлы, но он связан с записью БД, в которой содержаться данные. Каждый узел идентифицируется четырьмя полями (название, состояние, тип, положение), каждое из полей перезаписывается при изменении значения. TmsDBTreeView поддерживает операцию перетаскивания узлов. Для операций добавления, удаления, переименования узлов, предусмотрены горячие клавиши (Ins, Ctrl+ Ins, Del). Компонент работает с наследником TDataSet в качестве источника данных. Данный компонент может использоваться для создания программ класса информационных менеджеров, различных обозревателей и т.д.

Возможности:

  • автоматическая сортировка узлов (по типу, по имени);
  • поддержка Drag and Drop;
  • два типа узлов (папки и записи);
  • возможность добавления, удаления узлов;
  • автоматический переход к записи БД связанной с выделенным узлом;
  • хранение информации о каждом узле (название, статус (развернут, свернут), тип, положение);
  • быстрые клавиши для основных операций с узлами (добавление папок \ файлов, удаление, переименование узлов).

Свойства:
  • property Active: boolean;
    Признак активности компонента.
    Описание:
    Используйте Active для того, чтобы установить компонент в активное или пассивное состояние.
    При установке Active в true, данные загружаются из таблицы БД, создаются и инициализируются узлы дерева в соответствии со структурой определенной в БД, становятся доступными все методы. При этом соединение с БД должно быть уже установлено! При установке Active в false, компонент переходит в пассивное состояние, все узлы дерева удаляются (если они были созданы до этого), становятся недоступными все методы за исключением - Open. 
    Замечание:
    Используйте метод Open для того чтобы установить Active в true, и метод Close, чтобы установить Active в false. Метод Reopen для повторной инициализации данных. 
    Предупреждение:
    Состояние Active не влияет на соединение с Базой Данных, при установке значения в true открытия соединения с Базой Данных не происходит, также и при установке значения в false не происходит и закрытия соединения с Базой.
    Соединение с Базой Данных следует открывать до установки Active в true, и закрывать после установки в false.
  • property DataSet: TDataSet;
    Определяет набор данных.
    Описание:
    В качестве набора данных Вы можете использовать любой наследник TDataSet. Значение DataSet можно установить, как во время проектирования, так и во время выполнения приложения. Главное, чтобы соединение с Базой Данных было открыто до вызова метода Open (или установки Active в true).
    Предупреждение:
    Для нормальной работы компонента, в подключаемой Вами таблице Базы Данных, должны присутствовать следующие поля:
    Количество и названия других полей не ограничено, они могут быть любого типа.




    название тип  размер
    ID counter long int
    OwnerID numeric int
    Type numeric int
    State numeric int
    Title string int



  • property IconIndexes: TIconIndexes;
    Индексы иконок из списка Images для различных типов узлов (корневого узла, папки, файла).
    Описание:
    Тип TIconIndexes определен как класс, с тремя полями: 
    Если какой- то из индексов равен -1, то для данного типа узла иконка рисоваться не будет.


    Root_ImageIndex индекс иконки для корневого узла;
    Folder_ImageIndex индекс иконки для папки;
    Record_ImageIndex индекс иконки для файла;


  • property TypeOfSelected: boolean;
    Тип выделенного узла (папка или файл).
    Описание:
    Значение TypeOfSelected изменяется когда Вы переходите к новому узлу. Если выделена папка, то TypeOfSelected равно 0. Если выделен файл, то значение TypeOfSelected равно 1.
    Замечание:
    Состояние TypeOfSelected удобно отслеживать в обработчике OnSelectNode.

Методы:
  • procedure AddNode(const _type: integer); virtual;
    Добавляет новый узел в текущую папку.
    Описание:
    Используйте метод AddNode для того, чтобы добавить новый файл или папку. При добавлении узла, в Базу Данных добавляется новая запись, и инициализируются ее пять полей (ID, OwnerID, Type, State, Title). Тип создаваемого узла передается в параметре _type. Для добавления папки этот параметр должен быть равен FOLDER_TypeOfNode (0), файла - RECORD_TypeOfNode (1). Новый узел добавляется в выделенную папку и переводится в режим редактирования имени.
    Замечание:
    Если при добавление нового узла выделен файл (а не папка), то новый узел будет создан в родительской папке выделенного узла.
  • procedure DelNode(); virtual;
    Удаляет выделенный узел.
    Описание:
    Используйте метод DelNode для того, чтобы удалить выделенный узел. При удалении узла, из Базы Данных удаляется и запись, на которую этот узел указывает. 
    Замечание:
    При удалении папки, все дочерние узлы также будут удалены.
    Предупреждение:
    Корневую папку удалить нельзя. При попытке удаления корневой папки возникает окно с предупреждением.
  • procedure Open(); virtual;
    Создает узлы, переводит компонент в активное состояние.
    Описание:
    Используйте метод Open для того, чтобы установить Active в true. При установке Active в true, данные загружаются из таблицы БД, создаются и инициализируются узлы дерева в соответствии со структурой определенной в БД, становятся доступны все методы. При этом соединение с БД должно быть уже установлено!
    Предупреждение:
    Состояние Active не влияет на соединение с Базой Данных, при установке значение в true открытия соединения с Базой не происходит. Соединение с Базой Данных следует открывать до вызова метода Open компонента TmsDBTreeView.
  • procedure Reopen(); virtual;
    Повторно инициализирует данные.
    Описание:
    Используйте метод Reopen для повторной инициализации данных. Повторная инициализация данных, может потребоваться при смене таблицы Базы Данных во время работы приложения. После вызова этого метода, Active остается равен true. 
    Замечание:
    Метод Reopen последовательно вызывает методы Close и Open.
  • procedure Close(); virtual;
    Удаляет все узлы, переводит компонент в пассивное состояние.
    Описание:
    Используйте метод Close для того, чтобы установить Active в false. При установке Active в false, компонент переходит в пассивное состояние, все узлы дерева удаляются (если они были созданы до этого), становятся недоступны все методы, за исключением - Open. 
    Предупреждение:
    Состояние Active не влияет на соединение с Базой Данных, при установке значения в false не происходит закрытия соединения с Базой. Соединение с Базой Данных следует закрывать после вызова метода Close компонента TmsDBTreeView.

События:
  • property OnBeforeAddNode: TNodeAction;
    type TNodeAction = procedure (Sender: TObject; _type : integer; var Confirm : boolean) of object;
    Возникает перед добавлением узла.
    Описание:
    Используйте обработчик события OnBeforeAddNode для того, чтобы запросить у пользователя подтверждение на добавление узла, или же, чтобы определить специальные условия при которых новый узел не может быть добавлен. Для этого используйте параметр Confirm типа boolean, который определяет будет ли добавлен новый узел. Параметр _type указывает на тип создаваемого узла (0 - папка, 1 - файл). 
    Тип TNodeAction указывает на метод, который обрабатывает создание нового узла. Значение параметра Confirm подтверждает или отменяет добавление нового узла.
  • property OnBeforeDelNode: TNodeAction;
    type TNodeAction = procedure (Sender: TObject; _type : integer; var Confirm : boolean) of object;
    Возникает перед удалением узла.
    Описание:
    Используйте обработчик события OnBeforeDelNode для того, чтобы запросить у пользователя подтверждение на удаление узла, или же, чтобы определить специальные условия, при которых узел не может быть удален. Для этого используйте параметр Confirm типа boolean, который определяет, будет ли удален узел. Параметр _type указывает на тип удаляемого узла (0 - папка, 1 - файл).
    Тип TNodeAction указывает на метод, который обрабатывает удаление узла. Значение параметра Confirm подтверждает или отменяет удаление узла. 
    Замечание:
    При попытке удалить корневую папку событие не возникает.
  • property OnBeforeOpen : TComponentAction;
    type TComponentAction = procedure (Sender: TObject) of object;
    Возникает перед переходом компонента в активное состояние.
    Описание:
    Вы можете использовать обработчик события OnBeforeOpen для того, чтобы определить специальные действия перед активацией компонента. Например, открыть соединение с БД.
  • property OnAfterClose : TComponentAction;
    type TComponentAction = procedure (Sender: TObject) of object;
    Возникает после перехода компонента в пассивное состояние.
    Описание:
    Вы можете использовать обработчик события OnAfterClose для того, чтобы определить специальные действия после перехода компонента в пассивное состояние. Например, закрыть соединение с Базой данных.
  • property OnSelectNode: TSelectNode;
    type TSelectNode = procedure (Sender: TObject; Node: TTreeNode) of object;
    Возникает при переходе к новому узлу.
    Описание:
    Используйте обработчик события OnSelectNode для того, чтобы определить специальные действия при переходе к новому узлу. При переходе к новому узлу, курсор устанавливается на запись БД связанную с выделенным узлом. Параметр Node указывает на выделенный узел. 
    Замечание:
    В обработчике OnSelectNode удобно отслеживать состояние TypeOfSelected.

Copyright © 2002 - 2005 mSunSoftware. All rights reserved.