|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.09.2010, 14:46 | #1 |
Участник клуба
Регистрация: 15.01.2010
Сообщений: 1,325
|
Вопросы по AdvStringGrid'у
Всем здрасьте!
Работаю над проектом, где понадобился красивый и функциональный стринггрид. Век бы мне не использовать TMS'совский, да еще столько же, но заказчику именно такой нужен. Ладно, сел разбираться. Первый вопрос: какие принципиальные различия между AdvStringGrid и AdvColumnGrid, кроме того, что в колумгриде каждая колонка - это отдельный объект? Что самое интересное, что на офф.сайте есть куча документации с примерами, но в ней, например, умалчивается о том, как промотать скролл бар к определенной ячейке. Нашел методом тупого ковыряния в исходниках (а туда не дай Бог кому глянуть, потому как там порядка 50тыс строк кода только в главном юните, а подключаемых там еще с три десятка). Разбираюсь, конечно, но некоторые глюки обойти не могу. У меня сверху на панели прилажен SpinEdit, который отвечает за зум. Тут надо сказать как задуман зум в самом СтрингГриде, а именно: есть процедура Zoom(x: integer), в которую надо передавать число от -10 до +10 (это, типа, кратность зума), причем x - это приращение зума, а не его абсолютная величина, и найти, как и откуда выцепить уже имеющееся значение я не смог (может, кто подскажет?), но сделал глобальную переменную, где это значение храню. Это по поводу того, как это организовано. А теперь сам глюк: при открытии нового документа у меня динамически создается новая вкладка (TTabSheet) с АдвСтрингГридом, при этом значение зума считывается из СпинЭдита и передается в процедуру, при этом увеличение/уменьшение шрифта происходит, а размеров самих ячеек - нет! Соответственно надписи в ячейках нагло выпирают за их пределы. Как это обойти? И, наконец, последний вопрос: если зум увеличен/уменьшен, то при редактировании ячейки шрифт становится 8-го размера. При этом ПарентФонт стоит в фолс. Как сделать так, чтобы при редактировании шрифт оставался таким, какой он во всех остальных ячейках? Самому переписать процедуру Zoom? Это ж я пока разберусь, у меня крыша съедет
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "[ПРОграммист]" Yan's Home Digital Lab Последний раз редактировалось ex.cluz; 09.09.2010 в 14:48. |
09.09.2010, 23:24 | #2 | |
Участник клуба
Регистрация: 15.01.2010
Сообщений: 1,325
|
Перекраивать процедуру зума не стал, написал свою.
Кроме того, величину зума стал хранить в свойстве Tag у каждой вкладки. Часть проблем исчезло, но глюк с фонтом 8 размера в редактируемой ячейке, независмо от того, какой зум, остался. Продолжаю ковырять исходники... Добавлено позже Цитата:
Дебагер не использую, т.к. придется очень долго сидеть.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "[ПРОграммист]" Yan's Home Digital Lab Последний раз редактировалось ex.cluz; 10.09.2010 в 00:09. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопросы | ReaktiV | Общие вопросы C/C++ | 52 | 03.05.2010 16:38 |
Вопросы по if, else? | molodoyy | Помощь студентам | 5 | 21.03.2010 15:34 |
Вопросы | Syltan | Общие вопросы C/C++ | 2 | 13.11.2009 19:32 |
Вопросы по if, else? | molodoyy | Общие вопросы C/C++ | 1 | 25.10.2008 18:55 |