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