Компонент TISPROVirtualTree
Компонент TISPROVirtualTree призначений для роботи з деревом з колонками.У дизайнера вікон на вкладці Розширені.
Функції:
Функції створення структури дерева:
- procedure AddN ode (ID: Int64; ParentID: Int64; Text: String)
Додає гілку з ім'ям Text в дерево , ID якій повинно бути унікальним.
ParentID - ID гілки, в яку буде додаватися нова гілка.
- procedure AddColumn (Name: String)
Додає в дерево нову колонку з ім'ям Name . Текст в гілках нової колонки встановлюється з першої колонки відповідної гілки.
-
procedure AddNumericColumn (Name: String; Triads: BOOLEAN)
Додає колонку числового типу. Triads - встановлює відображення числа в вигляді тріад.
-
procedure AddD ateTimeColumn (Name: String; MaskType: Integer)
Додає колонку типу «Дата». MaskType - встановлює тип відображення дати (1 - з часом, 2 - без часу)
Функції заповнення дерева:
- procedure SetText (NodeID: Int64; ColumnIndex: Int64; Text: String)
Встановлює текст Text в осередку гілки з номером NodeID і колонки з номером ColumnIndex (нумерація починається з 0).
- procedure SetNumericValue ( NodeID : Int 64; ColumnIndex : Int 64; Value : Double ) Аналогічно з SetText встановлює значення типу Double для колонки з відповідним типом.
- procedure SetDateTimeValue ( ID : Int 64; ColumnIndex : Int 64; Value : TDateTime ) Аналогічно з SetText встановлює значення типу TDateTime для колонки з відповідним типом.
- procedure SetColumnName (ColumnIndex: Integer; Name: Strin g)
Встановлює ім'я Name колонки з номером ColumnIndex .
- procedure SetNodeCheck ( ID : Int 64; Checked : Boolean ) Встановлює або знімає позначку з гілки з номером ID .
Функції навігації по дереву:
- procedure SetFocusedNode (ID: Int64)
Встановлює курсор на гілці з номером ID , при цьому фокус колонки не змінюється.
- procedure SetFocusedColumn (ColumnIndex: Integer)
Встановлює курсор на колонці з номером ColumnIndex , при цьому фокус гілки не змінюється.
-
procedure ExpandNode (ID: Int64)
Розкриває гілку з номером ID.
-
procedure CollapsNode (ID: Int64)
Згортає гілку з номером ID .
-
procedure ExpandAll ()
Розкриває всі гілки.
-
procedure CollapsAll ()
Згортає всі гілки.
Функції зворотного зв'язку з деревом
- function GetText ( NodeID : Int 64; ColumnIndex : Int 64): String Повертає текст в осередку, яка розміщена в гілці з номером NodeID і колонці з номером ColumnIndex.
-
'function GetFocusedText (): String'
Повертає текст у виділеній комірці.
-
function GetSelectedNodeID (): Int64
Повертає номер гілки, на якій знаходиться курсор.
-
function GetSelectedColumnIndex (): Int64
Повертає номер колонки, на якій знаходиться курсор.
-
function GetNodeCheck (ID: Int64): Boolean
Повертає true або false , що відображають відзначена чи гілка дерева.
- function GetNodeParentID ( ID : Int 64): Int 64 Повертає ID батька гілки з номером ID .
- function GetNodeHeight ( ID : Int 64): Integer Повертає висоту Ноди з номером ID
-
Функція function GetCurrentField: String
Повертає ім'я поля поточної колонки.
Приклад :
procedure GridXML1OnDblClick (Sender: TISPROComponent);
begin
ShowMessage (GridXML1.GetCurrentField + '' + GridXML1.GetFieldValue (GridXML1.GetCurrentField));
end;
Функції:
-
function SetColumnWidth (Індекс колонки, Ширина колонки)
Приклад використання: VirtualTree1.SetColumnWidth (0,200);
Функції циклічного перебору структури дерева
-
function GetFirstNodeID (): Int64
Повертає ID першої гілки.
- function GetNextNodeID ( ID : Int 64): Int 64 Повертає ID наступної за переданої в параметрі функції гілки.
-
function GetNodeCount (): Int64
Повертає кількість гілок в дереві.
-
function GetColumnCount (): Int64
Повертає кількість колонок в дереві.
Функції Редагування дерева
- AllowManualEditing - дозволяє режим редагування
- procedure EditFocusedNode
Включає режим редагування поточної комірки
- procedure SetColumnWidth ( ColumnIndex : Integer ; Width : Integer ) Установка ширини обраної колонки
-
procedure SetColumnAlignment (ColumnIndex: Int64; CellAlignment: string)
Установка вирівнювання в в осередку . Варіанти: 'caRight', 'ca Center ', 'ca Left '
-
procedure SetColumnPrecision (ColumnIndex: Int64; Precision: integer)
Установка точності чисел ( кількості знаків після коми ). Зауваження : кількість знаків після коми обмежує число тільки при відображенні, введене число зберігається в пам'яті.
- procedure SetColumnStyle ( ColumnIndex : Int 64; BackgroundColor , TextColor : TColor ; TextSize : Integer ; Bold , Italic : Boolean ) Установка стилю колонки: колір фону, тексту, розмір тексту (в пікселях), стиль шрифту ( Bold - жирний, Italic - похилий )
-
procedure SetCellStyle (ID: Int64; ColumnIndex: Int64; BackgroundColor, TextColor: TColor; TextSize: Integer; Bold, Italic: Boolean)
Аналогічно SetColumnStyle, але застосовувана к до осередку . Стиль комірки має перевагу перед стилем колонки.
-
procedure SetColumnMask (ColumnIndex: Int64; MaskType: Integer)
Установка типу відображення дати ( застосовна к до колонці типу « Дата »). MaskType: 1 - дата і час, 2 - тільки дата
- procedure DeleteNode ( ID : Int 64) Видалення гілки дерева з ідентифікатором ID Якщо видаляється батьківський вузол то всі дочірні вузли теж видаляються.
-
procedure Clear
Очищення дерева
-
procedure SetNodeHeight (ID: Int64; value: Integer)
Установка висоти Ноди .
Властивості:
SummaryHeight - висота підсумкового поля
Можливості:
- швидкий пошук по колонці, на якій стоїть фокус.
- форматованого виведення чисел і дат, а також налаштування форматування комірки
- форматування комірки
Приклади:
- Код програми:
- заповнення дерева
procedure Button1OnClick (Sender: TISPROComponent);
var
i: Int64;
begin
VirtualTree1.AddNode (1,0, '1');
VirtualTree1.AddNode (2,1, '11 ');
VirtualTree1.AddNode (11,0, '2');
VirtualTree1.AddNode (12,2, '111');
VirtualTree1.AddNode (17,2, '112');
VirtualTree1.AddNode (18,11, '21 ');
VirtualTree1.AddColumn ( 'col');
end;
- встановити тест в певній клітинці
procedure Button2OnClick (Sender: TISPROComponent);
begin
VirtualTree1.SetText (2,1, 'dcdvdv');
end;
- встановити фокус в вибраній комірці
procedure Button5OnClick (Sender: TISPROComponent);
begin
VirtualTree1.SetFocusedColumn (1);
VirtualTree1.SetFocusedNode (11);
end;
- отримати текст комірки
procedure Button6OnClick (Sender: TISPROComponent);
begin
ShowMessage (VirtualTree1.GetText (2, 1));
end;
Для компонента TISPROVirtualTree реалізовані події, які реагують на прокрутку колеса миші:
- OnMouseWheel,
- OnMouseWheelUp,
- OnMouseWheelDown.
Параметри відповідають аналогічним подіям в VCL, крім MousePos: TPoint, який перетворений в MousePos.X, MousePos.Y. Спрацьовують, тільки якщо VirtualTree в фокусі, але знаходження курсору на ньому не обов'язково.