Самодельный Грид
Чего умеет:
-Перемещение клавишами по базе - вверх, вниз, home, end, pageup,pagedown.
-Перемещение мышкой по базе – вертикальный ScrollBar (по одной записи и страницами).
-Перемещение мышкой по базе – кликая на нужной строке.
-Инкриментальный поиск.Сбрасывает поисковую строку после ухода с найденой записи
-Контекстный поиск. Вхождение части слова в запись (SELECT - LIKE)
-Сортировки по любой колонке кликая мышкой на заголовке или клавишами влево, вправо.
-Красит цветом активный заголовок колонки
-Любой цвет букв и фона. У каждой колонки может быть свой цвет.
-В зависимости от условий может выделять цветом любую строку на экране
-Указатель текущей записи (курсор), выделяет всю запись целиком.
-Курсор в каждой колонке может иметь свой цвет.
-Понимает фильтры записей.
Чего не умеет:
-Быть визуальным классом (при желании может им стать)
-Не делает горизонтальный скроллинг (делать не собираюсь так как не вижу необходимости)
-Не умеет замораживать колонки
-Нет авто повтора при использовании горизонтального scrollbar мышью
-Печатать заголовок в 2 строки
-Устанавливать для заголовка каждой колонки свой шрифт(только один на все колонки)
-Редактировать записи прямо в таблице(можно научить немного изменив классы на основании которых создается таблица)
-Перемещение в базе клавишами проигрывает по скорости обычному гриду – Чем больше строк и колонок тем медленней работает. При инкриментальном поиске летает P2-333
Глюки :
-НЕНАВИДИТ пустую таблицу с удаленными записями. В одном месте используется RECCOUNT(), который не понимает удаленных записей
- Если количество записей меньше чем количество строк – то мышкой можно встать на несуществуюшие строки
-Не уходит “Focus” с клавиш навигации, поэтому при нажатии на Enter иногда получаются самонепроизвольные движения в базе(борюсь)
Как подключать:
Класс не визуальный – со всеми вытекающими
Прописывается в Init формы
В форме установить KeyPreview и KeyPress обрабатывать клавиши
Необходимые методы
Spis_info – Аналог AfrerRowColChange
Real_search - Управляет поиском
Необходимые свойства
Anseek - суда пишется что искать
Необходимые объекты
Sh_seek(textbox) - выводит в форму чего ищем
Не очень необходимые методы
One_step_zapr – Надо для контекстного поиска и запросов по сложному ключу
Edit_back - Управляет редактированием
Edit_cancel - -//-
Edit_in - -//-
Edit_save - -//-
Не очень необходимые свойства – нужны при редактировании записей
Data_change - Признак что изменились данные при редактировании
EditMode -Признак что находимся в режиме редактирования
New_record -Признак новой записи
Устроен:
Большая таблица из TextBox –ов помещенная в контейнер
Настройка:
В файле AnGrid.prg – собственно сам класс довольно подробно описаны значения свойств настройки
Задается:
-Количетство строк и колонок
-Высота строки и заголовка
-Название основной базы
Для каждой колонки свойства каждой колонки в массиве ColOp[колонка, свойство]
-Ширина колонки
-Источник данных
-класс на основании которого строится колонка
-цвета ячеек (в демо выделяются все записи где есть буква а)
Запуск Demo:
В проекте фаил Demo где надо прописать пути
-К базам
-Формам
-Программам
-Папке TMP
По умолчанию настроен на C:Demo
Вложенные файлы
# |
Название |
Тип файла |
Размер |
---|---|---|---|
1 | 348demo | .zip | 49,34 КБ |