мета-данные страницы
Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
unilinescustomization [05.09.2022 13:52] Lingri |
unilinescustomization [06.09.2022 07:02] (текущий) Lingri |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Настройка внешнего вида и поведения UniLines ====== | ====== Настройка внешнего вида и поведения UniLines ====== | ||
- | Для UniLines-а уже разработаны и предусмотрены различные варианты кастомизации его работы. | + | Для **UniLines**-а уже разработаны и предусмотрены различные варианты кастомизации его работы. |
В целом, их можно разделить на следующие группы: | В целом, их можно разделить на следующие группы: | ||
Строка 9: | Строка 9: | ||
===== Работа с выборными элементами (представление элементов как чекбоксов)===== | ===== Работа с выборными элементами (представление элементов как чекбоксов)===== | ||
- | UniLines позволяет отобразить элементы в виде галочек. Например, как это сделано в модуле DiscExt.pas (внешняя дисконтная схема), для отображения таблицы со скидками на каждую группу слуг. | + | **UniLines** позволяет отобразить элементы в виде галочек. Например, как это сделано в модуле **DiscExt.pas** (внешняя дисконтная схема), для отображения таблицы со скидками на каждую группу слуг. |
{{:pasted:20220905-101535.png}} | {{:pasted:20220905-101535.png}} | ||
- | Включение галочного представления осуществляется за счёт опции ShowCheckBoxes (по умолчанию False). | + | Включение галочного представления осуществляется за счёт опции **ShowCheckBoxes** (по умолчанию **False**). |
- | Включение этой опции, по сути, для каждой ноды VST выставляет свойство CheckType := ctCheckBox. | + | Включение этой опции, по сути, для каждой ноды **VST** выставляет свойство **CheckType := ctCheckBox**. |
- | Опция IsTriStateCheckBoxes отвечает за возможность отображать "смешанное" состояние чекбокса (когда у дочерних элементов как стоят галочки, так и не стоят): | + | Опция **IsTriStateCheckBoxes** отвечает за возможность отображать "смешанное" состояние чекбокса (когда у дочерних элементов как стоят галочки, так и не стоят): |
{{:pasted:20220905-101950.png}} | {{:pasted:20220905-101950.png}} | ||
Строка 65: | Строка 65: | ||
</sxh> | </sxh> | ||
- | Опция ShowCustomCheckBoxes позволяет подгрузить специальные иконки для чекбоксов. У нас они берутся из ImgDMForm.ilChecksTree32: | + | Опция **ShowCustomCheckBoxes** позволяет подгрузить специальные иконки для чекбоксов. У нас они берутся из **ImgDMForm.ilChecksTree32**: |
<sxh Delphi> | <sxh Delphi> | ||
Строка 85: | Строка 85: | ||
</sxh> | </sxh> | ||
- | Для работы с чекбоксами в рамках UniLines реализованы на текущий момент следующие функции/процедуры: | + | Для работы с чекбоксами в рамках **UniLines** реализованы на текущий момент следующие функции/процедуры: |
* function GetCheckedValues(const ValueName: string; GetSQLStr: boolean = True; Delimiter: string = ','): string; - через указанный разделитель собирает все значения ValueName, у которых отмечены галочки; | * function GetCheckedValues(const ValueName: string; GetSQLStr: boolean = True; Delimiter: string = ','): string; - через указанный разделитель собирает все значения ValueName, у которых отмечены галочки; | ||
Строка 93: | Строка 93: | ||
* procedure Inversion; - инвертировать галочки у всех нод. | * procedure Inversion; - инвертировать галочки у всех нод. | ||
- | Изменение галочек осуществляется через свойство ноды CheckState, например: | + | Изменение галочек осуществляется через свойство ноды **CheckState**, например: |
<sxh Delphi> | <sxh Delphi> | ||
procedure TUniLinesFrame.CheckAll; | procedure TUniLinesFrame.CheckAll; | ||
Строка 113: | Строка 113: | ||
===== Управление выбранными элементами ===== | ===== Управление выбранными элементами ===== | ||
- | Выбранной нодой, если по-простому, можно считать ту ноду, по которой случился клик. Через ctrl выбранных нод может оказаться несколько: | + | Выбранной нодой, если по-простому, можно считать ту ноду, по которой случился клик. Через **ctrl** выбранных нод может оказаться несколько: |
{{:pasted:20220905-105127.png}} | {{:pasted:20220905-105127.png}} | ||
- | Основное управление выбранными нодами осуществляется через VST, например | + | Основное управление выбранными нодами осуществляется через **VST**, например |
<sxh Delphi> | <sxh Delphi> | ||
VST.Selected[LastNode] := True; | VST.Selected[LastNode] := True; | ||
Строка 132: | Строка 132: | ||
===== Кастомизация управляющих кнопок ===== | ===== Кастомизация управляющих кнопок ===== | ||
- | Для UniLines-а предусмотрено несколько методов, позволяющих добавить кастомные кнопки и элементы меню, чтобы можно было сделать уникальное поведение этого фрейма на разных формах, без необходимости изменения в дизайн-тайме. | + | Для **UniLines**-а предусмотрено несколько методов, позволяющих добавить кастомные кнопки и элементы меню, чтобы можно было сделать уникальное поведение этого фрейма на разных формах, без необходимости изменения в дизайн-тайме. |
==== Добавление элементов выпадающего меню в заголовок ==== | ==== Добавление элементов выпадающего меню в заголовок ==== | ||
Строка 180: | Строка 180: | ||
==== Добавление меню в выпадающий список дерева ==== | ==== Добавление меню в выпадающий список дерева ==== | ||
- | Имеется в виду окно, возникающее при правом клике на элементе UniLines | + | Имеется в виду окно, возникающее при правом клике на элементе **UniLines** |
{{:pasted:20220905-130209.png}} | {{:pasted:20220905-130209.png}} | ||
Строка 191: | Строка 191: | ||
</sxh> | </sxh> | ||
- | * ACaption - Название пункта меню; | + | * **ACaption** - Название пункта меню; |
- | * AOnClick - событие при клике; | + | * **AOnClick** - событие при клике; |
- | * AImageIndex - номер иконки (берётся из ImgDMForm.ilAll); | + | * **AImageIndex** - номер иконки (берётся из **ImgDMForm.ilAll**); |
- | * AVisible - видимость пункта меню; | + | * **AVisible** - видимость пункта меню; |
- | * DoHookPopup - позволяет отрисовывать меню в скине. | + | * **DoHookPopup** - позволяет отрисовывать меню в скине. |
Из интересного тут появляется возможность рулить видимостью пункта меню. | Из интересного тут появляется возможность рулить видимостью пункта меню. | ||
Строка 240: | Строка 240: | ||
</sxh> | </sxh> | ||
- | * ACaption - название кнопки; | + | * **ACaption** - название кнопки; |
- | * AAfterPosition - позиция кнопки (есть значения tpsEndButtons = 0 - после всех основных кнопок и tpsEndCheckbox = 1 - после всех чекбоксов); | + | * **AAfterPosition** - позиция кнопки (есть значения tpsEndButtons = 0 - после всех основных кнопок и tpsEndCheckbox = 1 - после всех чекбоксов); |
- | * AImageIndex - индекс картинки, берётся из ImgDMForm.ilAll; | + | * **AImageIndex** - индекс картинки, берётся из ImgDMForm.ilAll; |
- | * AOnClick - событие нажатия; | + | * **AOnClick** - событие нажатия; |
- | * AIsCheck - должна ли кнопка быть чекбоксом. | + | * **AIsCheck** - должна ли кнопка быть чекбоксом. |
Пример: | Пример: | ||
Строка 271: | Строка 271: | ||
Под стандартными подразумеваются кнопки "Создать", "Изменить", "Редактировать", "Печать" и прочие подобные, а также соответствующие им элементы выпадающего меню. | Под стандартными подразумеваются кнопки "Создать", "Изменить", "Редактировать", "Печать" и прочие подобные, а также соответствующие им элементы выпадающего меню. | ||
- | В UniLines-е предусмотрено множество вариаций по их отображению, также как и отображение целых панелей. Подробно рассматривать не будем, названия должны понятно отражать их суть. | + | В **UniLines**-е предусмотрено множество вариаций по их отображению, также как и отображение целых панелей. Подробно рассматривать не будем, названия должны понятно отражать их суть. |
<sxh Delphi> | <sxh Delphi> | ||
Строка 292: | Строка 292: | ||
===== Текстовые опции===== | ===== Текстовые опции===== | ||
- | Также, в UniLines-е возможно настраивать ячейки с информацией, правила её отображения и возможность изменения. | + | Также, в **UniLines**-е возможно настраивать ячейки с информацией, правила её отображения и возможность изменения. |
==== Настройка отображения ==== | ==== Настройка отображения ==== | ||
Строка 306: | Строка 306: | ||
</sxh> | </sxh> | ||
- | Таким образом, в стандартном ULF разрешается только многострочность и ручная регулировка высоты ноды. Но при включении IsHtml становится возможным серьёзно управлять отображением текста. | + | Таким образом, в стандартном **ULF** разрешается только многострочность и ручная регулировка высоты ноды. Но при включении **IsHtml** становится возможным серьёзно управлять отображением текста. |
==== Настройка редактирования ==== | ==== Настройка редактирования ==== | ||
Строка 323: | Строка 323: | ||
+ | [[https://agbis.getcourse.ru/pl/teach/control/lesson/view?id=254286906|Пройти тест]] | ||
+ | |||
+ | [[https://doc.agb.is/develop/unilines|Назад]] |