Автономный модуль + шаблон Clarion 10 (ABC), который даёт пользователям вашего приложения возможность настраивать любой список (LIST/BROWSE) под себя — с сохранением настроек отдельно для каждого пользователя и каждого списка — и добавляет разработчику готовый набор инструментов без единой строчки ручного кода в окне.
С огромной благодарностью Игорю Столярову — этот модуль и шаблон созданы на основе его кода и идей.
Дополнил и оформил: Рыбников А.
Что умеет
Для пользователя приложения
Spoiler
- Перетаскивание колонок мышью — меняется порядок, курсор показывает режим переноса
- Правый клик по шапке колонки — контекстное меню: скрыть/показать (в т.ч. «показать все скрытые»), переместить влево/вправо, подогнать ширину под текст или под все видимые колонки, прижать текст/заголовок влево или вправо, зафиксировать колонку у левого края, задать формат отображения (числа/даты/деньги) с живым примером, увеличить/уменьшить/сбросить масштаб
- Полноценное окно-редактор («Настройка таблицы») — одним экраном:
- список всех колонок с чекбоксами вкл/выкл, иконками статуса, точным вводом ширины (двойной клик по ячейке)
- поиск колонки по маске * и ?
- фильтр «Все / Рабочие / Скрытые / Уменьшенные / Увеличенные»
- визуальная подсветка изменённых колонок — прямо в списке редактора и в самом настраиваемом списке одновременно
- объединение соседних колонок в группу с собственным названием («Оплата» над «К оплате» + «Оплачено»), переименование группы, разбор группы обратно
- границы между колонками, цвет и оформление заголовков
- вкладка «Оформление»: высота строки, размер и семейство шрифта (5 вариантов), цвет сетки, цвет выделения строки, чувствительность колеса мыши
- вкладки «Описание» и «Клавиши» — встроенная справка для конечного пользователя
- окно тянется за мышью (resize), кнопка «Сброс настроек по умолчанию» (F5)
- Масштаб списка одним движением — Ctrl+ / Ctrl- (и NumPad, и основной ряд клавиатуры), кнопки на окне или пункты меню шапки: одновременно меняются шрифт, высота строки и ширина всех колонок. Уровень масштаба хранится отдельно от пользовательских настроек колонок — сброс всегда возвращает точный исходный вид, ничего не портится
- Два независимых режима раскладки — компактный (максимум строк на экране) и горизонтальный (крупнее, для просмотра большого числа полей), с собственными наборами настроек, переключаются одной кнопкой
Spoiler
- Полностью автономный модуль — никакой ABC BrowseClass, никакого словаря приложения, только нативный TopSpeed и ASCII. Вешается на существующий список без переделки процедуры
- Готовый Clarion Template — перетащить на процедуру, указать объект списка и уникальный ID настроек, галочками включить нужные функции (меню шапки, drag-and-drop, масштаб, режимы раскладки) — весь код генерируется автоматически с чёткими маркерами Start/End
- Два Control-шаблона-кнопки — «Открыть редактор настроек» и «Кнопки масштаба (+/−/сброс)» — перетаскиваются на окно рядом со списком, сами находят нужный список и привязываются к нему
- Работает с мульти-DLL — модуль компилируется один раз в data-DLL с Export List, в остальных DLL/EXE — только INCLUDE прототипов
- Миграция настроек «на лету» — если у пользователей уже есть старый файл настроек другого формата, модуль сам переносит данные при первом запуске, ничего не теряя
- Устойчивая структура файла настроек — предусмотрен резерв под будущее расширение без пересоздания файлов пользователей
- Clarion 10, шаблонсет ABC
- Никаких сторонних библиотек — только стандартный RTL
Стандартная структура Clarion10\accessory\ (libsrc\win, template\win, images, doc) — распаковать поверх установки Clarion, подробная инструкция и пример подключения к стандартному или мульти-DLL проекту — в README.txt внутри архива.
Автономный, без зависимостей от словаря и ABC
Замечания в работе и усовершенствования шаблона приветствуются.
