![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 14.02.2011
Сообщений: 89
|
![]()
В компоненте DBGridEh библиотеки Ehlib, название колонки имеет тип TColumnTitleEh, т.е. напрямую заменить его на тип String не получится.
Подскажите пожалуйста как можно это сделать. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 14.02.2011
Сообщений: 89
|
![]()
Спасибо всё работает)))
|
![]() |
![]() |
![]() |
#4 |
Homo Interneticus
Форумчанин
Регистрация: 04.03.2011
Сообщений: 611
|
![]()
Заимел проблемку при сабже :-(
Есть DbGridEh1 через DataSet1 связан с Query1. В запросе возвращаются в том числе 3 поля с данными по месяцам квартала и поле с номером квартала. В зависимости от номера квартала в шапке грида столбцы должны озаглавливаться соответствующими наименованиями месяцев, т.е. если 1 квартал то январь, февраль, март, если 3 квартал - июль, август, сентябрь и т.д. Поставил замену заголовков (через dbgrdh1.Columns[4].Title.Caption:='название месяца') в DataSet1.OnDataChange. Когда просматриваю значение dbgrdh1.Columns[4].Title.Caption через Watches в отладчике, то вижу что все норм меняется, но в самом гриде когда перемещаюсь по записям с помощью клавиш управления курсором ничего не меняется. Когда перемещаюсь с помощью PgUp/PgDown или скроллинга мышью меняется. Пробывал после изменения заголовка делать refresh, paint, application.processmessage, добавлял предварительно delay(1). Толку нуль :-( Куды смотреть? ЗЫ: EhLib 5.2.05, может какой-то баг в DBGridEh был в этой версии? Если у кого-нидь есть History/Changelog более новой версии можете посмотреть? Последний раз редактировалось astecenko; 17.07.2013 в 14:27. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
![]()
Смотреть, видно, надо на событие квери AfterScroll, которое возникает при любом позиционирование в гриде.
В процедуре обработки этого события, скорее всего, и надо менять заголовки в зависимости от номера квартала в текущей строке. (если вопрос правильно понят) |
![]() |
![]() |
![]() |
#6 |
Homo Interneticus
Форумчанин
Регистрация: 04.03.2011
Сообщений: 611
|
![]()
Ставил в AfterScroll - не помогает
Суть в том тчо при просмотре в отладчике вижу что фактически инфа в dbgrdh1.Columns[n].Title.Caption меняется, НО сама шапка DBGridEh1 почему-то не перерисовывается если я перемещаюсь по записям с помощью клавиш управления курсором. Если перемещаюсь по записям с помощью Pg(Up|Down) или скроллинга мышья - перерисовывается. Т.е. дело по всей видимости именно в DbGridEh :-( |
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
![]() Цитата:
А DBGridEh в этой ситуации мало чем отличается от штатной DBGrid и вряд ли дело в этом компоненте. |
|
![]() |
![]() |
![]() |
#8 |
Homo Interneticus
Форумчанин
Регистрация: 04.03.2011
Сообщений: 611
|
![]()
не-не, как раз с 5ой версии по-моему у DBGridEh своя прорисовка и т.п., он же не наследует от DBGrid штатное... там какие-то методы остались заглушками для совместимости, а какие-т оновые появились. Но суть в том что я в прорисовку конкретно шапки таблицы ни где не лезу. То бишь у меня есть обработчик dbgrdh1GetCellParams где я только меняю цвет фона строк
в AfterScroll ставил присвоение имен столбцам, то что до того стояло в dataset1.ondatachange - результат аналогичен... Причем забавно, вот сейчас начал проверять, несколько раз сработало когда переходил с помошью клавиш управления курсором по записям, потом опять перестало :-( |
![]() |
![]() |
![]() |
#9 |
Homo Interneticus
Форумчанин
Регистрация: 04.03.2011
Сообщений: 611
|
![]()
Короче пока поставил "костыль": чтобы принудительно перерисовать грида после изменения шапки делаю dbgrideh1.width:=dbgrideh1.width+1 - так как у меня dbgrideh1.Align=alClient реально никаких изменений ширины не происходит, оно и так на всю панель, но грид перерисовывается...
подозреваю все же баг в мое версии EhLib :-( |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Спокойно с помощью AfterScroll меняю. Только версия EhLib у меня древняя - 2.5
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как присвоить Максимальную длину колонки DBGridEh Если даные берутся из квери | postaveche | БД в Delphi | 10 | 13.09.2010 14:54 |
Смена имени ПК в Linux. | Bilargo | Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) | 36 | 22.01.2010 00:17 |
Программная смена иконки на кнопке, расположенной на Панели быстрого доступа, в Word 2007 | litvin44 | Microsoft Office Word | 4 | 01.11.2009 14:58 |
Как в dbgrideh получить имя поля той колонки, по заголовку которой Вы щелкнули???? | zimmion | БД в Delphi | 4 | 04.03.2008 15:02 |
Смена имени | Terran | Win Api | 2 | 14.12.2007 17:19 |