Компонент TmsDBTreeView

| Версия 1.0.068 (Последнее изменение 22 декабря, 2006) |

 
 
 

Copyright © mSunSoftware. 2006.
All rights reserved.

E-mail: support@msunsoftware.com
Web: http://www.msunsoftware.com

 
 
 
 
Home английский | русский
 
 
 
 

Содержание


 
 

Описание

Компонент TmsDBTreeView, является производным от TmsTreeView и дополняет родителя механизмом взаимодействия с базами данных. Связь с данными осуществляется через канал связи - потомка TDataLink, аналогично стандартным компонентам со страницы Data Controls. Компонент TmsDBTreeView тесно взаимодействует с DataSet, реагирует на все изменения в наборе данных (добавление/ удаление/ изменение записей, фильтрация, открытие/ закрытие соединения, прокрутка данных и др.). В DataSet сохраняется информации о каждом узле (ID родителя, текст узла, состояние узла). Список Items, компонента TmsDBTreeView, состоит из наследников класса TmsTreeNode - TmsDBTreeNode.


 
 

Иерархия

TObject
       |
TPersistent
       |
TComponent
       |
TControl
       |
TWinControl
       |
TmsBaseTreeView
       |
TmsCustomTreeView
       |
TmsCustomDBTreeView
       |
TmsDBTreeView


 
 

Класс TmsDBTreeNode

Свойства

  • property ID: Integer;
    Абсолютный идентификатор узла.
    Description:
    Значение свойства ID указывает на конкретную запись DataSet. Инициализируется при загрузке узла из DataSet и при добавлении узла в дерево, или записи в DataSet.

Методы

  • constructor Create(AOwner: TmsBaseTreeNodes); override;
    Создает объект узла дерева.
  • procedure Assign(Source: TPersistent); override;
    Копирует данные узла Source в узел Self.
    Description:
    Используйте метод Assign для копирования данных узла Source в узел Self. Если Source не является объектом типа TmsDBTreeNode или операция осуществляется между разными деревьями (Source.TreeView <> Self.TreeView), то вызывается родительский метод копирования, а затем обновляется поле “Text” записи DataSet ассоциированной с узлом Self. В ином случае (если Source есть TmsDBTreeNode) копируются все поля записи DataSet ассоциированной с узлом Source в поля записи DataSet ассоциированной с узлом Self. На время выполнения операции устанавливается блокировка DataSet методами BeginEdit - EndEdit.
  • procedure Delete; override;
    Удаляет узел Self из дерева.
    Description:
    Используйте метод Delete для удаления узла Self из дерева. При вызове данного метода из программы, также удаляется запись DataSet ассоциированная с узлом Self. На время выполнения операции устанавливается блокировка DataSet методами BeginEdit - EndEdit.
    Note:
    Также для удаления узлов вы можете использовать методы Items.Delete, TmsDBTreeView.DeleteNode (при их вызове из DataSet будет удалена запись, ассоциированная с удаляемым узлом). Для удаления узла не используйте метод Node.Free, т.к. будет удален только сам узел, без удаления записи DataSet!
  • procedure MoveTo(Destination: TmsBaseTreeNode; Mode: TNodeAttachMode); override;
    Переносит узел Self в узел Destination в режиме указанном в параметре Mode.
    Description:
    Используйте метод MoveTo для переноса узла Self в новую позицию. После переноса узла обновляется поле “ParentID” записи DataSet ассоциированной с узлом Self. На время выполнения операции устанавливается блокировка DataSet методами BeginEdit - EndEdit.

 
 

Класс TmsDBTreeNodes

Методы

  • function AddNode(Node, Relative: TmsBaseTreeNode; const S: string; Ptr: Pointer; Method: TNodeAttachMode): TmsBaseTreeNode; override;
    Добавляет новый узел в дерево.
    Description:
    Используйте метод AddNode для добавления нового узла в дерево. Если компонент TmsDBTreeView не активен (TVActive = false), то узел не будет добавлен, и будет сгенерирована ошибка STVIsntActive. Если компонент активен, то будет сделана попытка добавления узла, при этом если дерево не строится (TVBuilding = false), то будет добавлена и новая запись в DataSet. На время выполнения операции добавления устанавливается блокировка DataSet методами BeginEdit - EndEdit.
    Note:
    Также, для добавления узла, вы можете использовать методы Add, AddFirst, Insert, AddChild, AddChildFirst, AddObject, AddObjectFirst, InsertObject, AddChildObject, AddChildObejectFirst.
  • procedure Assign(Source: TPersistent); override;
    Копирует данные из источника Source в Self.
    Description:
    Используйте метод Assign для копирования данных из источника Source в Self. Если компонент TmsDBTreeView не активен (TVActive = false), то операция не будет выполнена, и будет сгенерирована ошибка STVIsntActive. Если же компонент активен, то операция выполняется и на время выполнения операции устанавливается блокировка DataSet методами BeginEdit - EndEdit.
  • procedure Clear; override;
    Удаляет все узлы дерева.
    Description:
    Используйте метод Clear для удаления всех узлов дерева. Если компонент TmsDBTreeView не активен (TVActive = false), то будет вызван родительский метод Clear без каких-либо дополнительных действий. Если же компонент активен, то на время выполнения операции устанавливается блокировка DataSet методами BeginEdit - EndEdit.

 
 

Класс TmsCustomDBTreeView - TmsDBTreeView

Свойства

  • property TVActive: Boolean;
    Отражает состояние компонента TmsDBTreeView.

    Description:
    Если значение свойства равно true, то компонент находится в активном состоянии, вы можете добавлять/ удалять/ редактировать узлы. При значении свойства false, компонент не активен, при вызове большинства методов редактирования дерева, генерируется ошибка STVIsntActive.
    Note:
    Свойство TVActive доступно только для чтения, оно изменяется при смене состояния DataSet.Active. Значение свойства устанавливается в true только в том случае, если:
       - DataSet не равен nil;
       - DataSet активен;
       - найдены и корректны необходимые для работы дерева поля DataSet.
    Список полей, необходимых для работы компонента, смотрите здесь.
  • property TVBuilding: Boolean;
    Показывает, происходит ли загрузка и инициализация узлов дерева.
    Description:
    Если значение свойства равно true, то загружаются данные из DataSet, дерево строится.
    Note:
    Свойство TVBuilding доступно только для чтения, оно устанавливается в true перед началом построения дерева, и в false после.
  • property TVEditing: Boolean;
    Показывает, происходит ли обновление данных в DataSet, в ответ на изменения узлов дерева (добавление/ удаление/ перенос/ редактирование надписи узла).
    Description:
    Если значение свойства равно true, то идет обновление данных DataSet.
    Note:
    Свойство TVEditing доступно только для чтения, оно устанавливается в true перед началом обновления данных DataSet, и в false после.
  • property DataSetModified: Boolean;
    Показывает, происходит ли обновление узлов дерева, в ответ на изменения в DataSet.
    Description:
    Если значение свойства равно true, то идет обновление узлов дерева.
    Note:
    Свойство FDataSetModified доступно только для чтения, оно устанавливается в true перед началом обновления узлов дерева, и в false после.
  • property DataSource: TDataSource;
    Ссылка на источник данных.

Методы

  • constructor Create(AOwner: TComponent); override;
    Создает экземпляр объекта типа TmsDBTreeView.
  • destructor Destroy; override;
    Освобождает память из под объекта типа TmsDBTreeView.
  • procedure BeginEdit;
    Увеличивает число блокировок.
    Description:
    Используйте метод BeginEdit для увеличения числа блокировок. Если установлена первая блокировка, то, переводит флаг TVEditing в true, запоминает закладку на текущую запись, отключает обновление в компонентах.
  • procedure EndEdit;
    Уменьшает число блокировок.
    Description:
    Используйте метод EndEdit для уменьшения числа блокировок. Если все блокировки сняты, переводит флаг TVEditing в false, устанавливает курсор на запомненную запись, включает обновление в компонентах.
  • procedure DeleteNode(ANode: TmsBaseTreeNode = nil); override;
    Удаляет узел.
    Description:
    Используйте метод DeleteNode для удаления узла из дерева. Операция производится только в том случае, когда компонент активен (если TVActive=false, то удалять просто нечего!). На время выполнения операции устанавливается блокировка DataSet методами BeginEdit - EndEdit.
  • procedure PasteNode(ATargetNode: TmsBaseTreeNode = nil); override;
    Производит операцию вставки узла.
    Description:
    Используйте метод PasteNode для вставки узла. Операция производится только в том случае, когда компонент активен (TVActive=true). На время выполнения операции устанавливается блокировка DataSet методами BeginEdit - EndEdit.
  • procedure LoadFromFile(const FileName: string); override;
    Загружает узлы из файла.
    Description:
    Используйте метод LoadFromFile для загрузки узлов дерева из файла. Если компонент TmsDBTreeView не активен (TVActive = false), то операция не будет выполнена, и будет сгенерирована ошибка STVIsntActive. Если же компонент активен, то операция выполняется и на время выполнения операции устанавливается блокировка DataSet методами BeginEdit - EndEdit.
  • procedure LoadFromStream(Stream: TStream); override;
    Загружает узлы из потока.
    Description:
    Используйте метод LoadFromStream для загрузки узлов дерева из потока. Если компонент TmsDBTreeView не активен (TVActive = false), то операция не будет выполнена, и будет сгенерирована ошибка STVIsntActive. Если же компонент активен, то операция выполняется и на время выполнения операции устанавливается блокировка DataSet методами BeginEdit - EndEdit.

 
 

Список полей, необходимых для работы компонента:

  Field Type Delphi Type
  ID счетчик ftAutoInc
  ParentID целое ftInteger
  Expanded логический ftBoolean
  Text строковый ftString or ftWideString


 

Copyright © mSunSoftware. 2006. All rights reserved.