Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2010, 14:46   #1
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 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.
ex.cluz вне форума Ответить с цитированием
Старый 09.09.2010, 23:24   #2
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Перекраивать процедуру зума не стал, написал свою.
Кроме того, величину зума стал хранить в свойстве Tag у каждой вкладки. Часть проблем исчезло, но глюк с фонтом 8 размера в редактируемой ячейке, независмо от того, какой зум, остался. Продолжаю ковырять исходники...


Добавлено позже

Цитата:
найти, как и откуда выцепить уже имеющееся значение я не смог
Уже смог. Называется ZoomFactor. Только его можно использовать разве что для чтения (что тоже мало что мне дает), при попытке записать туда какое-либо число (в интервале -10 - 10) оборачивается непропорциональным увеличением/уменьшением различных ячеек по видимой части СтрингГрида.
Дебагер не использую, т.к. придется очень долго сидеть.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab

Последний раз редактировалось ex.cluz; 10.09.2010 в 00:09.
ex.cluz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы 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