|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.02.2008, 18:00 | #1 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 32
|
Нестандартная шапка для грида
Пишу табличное представление данных (grid), с этим все получилось. Хотелось бы шапку с заголовком данных нарисовать для всего этого дела, но не простую, а золотую - с объединенными ячейками (и по горизонтали и по вертикали), например. С самим рисование проблем нет, а вот как это дело хранить? Как хранить информацию, что тут вот ячейка объеденина с верхней, тут четыре объеденины? Наверное, это как-то просто, но вот пока нет совершенно никаких мысле.
Заранее спасибо, уважаемые джентельмены. |
08.02.2008, 09:44 | #2 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
Здесь проблема скорее не в том как хранить, а как все это описывать.
Предлагаю такую схему. На шапку наложена координатная сетка. Не важно в каких единицах. У меня это делается в символах, а потом приведение к координатам grid. Для каждой ячейки хранится область, которую она занимает в координатах сетки. Сами ячейки в простом списке. А теперь описание. Используются три метода - простое добавление, добавление вниз, добавление вправо. Добавляем первую ячейку add(10) // указываем только ширину // получили ----1---- добавляем 2-ю add(10) // ----1--- ---2---- добавляем ячейку вниз от последней addDown(10) // ---1---- ---2---- // -------- ---3---- После такого добавления корректируется высота 1 ячейки и ширина 2-й Добавляем вправо от последней addRight(10) // ----1---- ----2------------ // --------- ---3--- ----4---- и снова корректируется ширина 2-й Добавляем новую колонку add(10) // -----1----- ----2--------- -----5------ // ----------- ---3--- ---4-- Высота новой ячейки корректируется с учетом уже вставленных. Этими тремя методами можно описать шапку любой сложности. Ячейки покрывают всю область шапки и для каждой есть координаты прямоугольника. А дальше все просто. Берем прямоугольник, который нужно отрисовать, смотрим какие ячейки в него попадают и вызываем их методы Draw. Последний раз редактировалось alexBlack; 08.02.2008 в 09:48. |
08.02.2008, 13:17 | #3 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 32
|
Не слукавлю, если скажу - замечательная идея! Спасибо.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Шапка таблицы | Aiorosu | БД в Delphi | 10 | 24.03.2009 10:24 |
Нестандартная работа с COM портом | Alex_C | Win Api | 2 | 22.07.2008 02:34 |
Нестандартная задача с цветами ячеек ДБГрид! | Abbatik | БД в Delphi | 2 | 02.02.2008 18:02 |
Нестандартная форма | Лубышев | Общие вопросы Delphi | 7 | 28.01.2008 20:33 |
Перенос содержимого грида в активную базу | SpiDer87 | БД в Delphi | 13 | 24.12.2007 11:30 |