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