Компонент 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: String)
- Встановлює ім'я 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 в фокусі, але знаходження курсору на ньому не обов'язково.