TDBGridEh - отображение в две и более строк...

Вопросы стыковки визуальных компонент (DataControls, EhGrid, VirtualTreeView, DevExpress и т.п.) с данными из БД.

Модераторы: kdv, CyberMax

Ответить
AnryGTR
Сообщения: 116
Зарегистрирован: 15 янв 2007, 15:58

TDBGridEh - отображение в две и более строк...

Сообщение AnryGTR » 16 май 2007, 22:40

Здравствуйте уважаемые ГУРУ!
У меня ща такая трабла:
в сетке(TDBGridEh) есть поле фиксированного размера, и там иногда появляются данные больше этого размера, вот мне нужно, чтобы если в очередной строке как только данные превышают размер колонки - данная строка сетки переводила бы следующую порцию данных на вторую строчку ячейки и т.д. Я изменял свойство RowHeight или RowLines, но факт то, что эти функции действуют на все строки сетки, да и к тому же это некрасиво... :? А можно ли сделать как я говорю?
Например такое свойство есть в ФастРепорте, типа MaxHeight и Stretch.

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 17 май 2007, 02:05

Нет.

AnryGTR
Сообщения: 116
Зарегистрирован: 15 янв 2007, 15:58

Сообщение AnryGTR » 17 май 2007, 15:59

Что совсем ничего в этом направлении нельзя сделать, типа OnDrawDataCell, или где-то там? Я ковырялся, но ничего так и не получается... :evil:

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 17 май 2007, 16:32

В стандартных гридах - никак. Слишком глубоко зарыто, надо половину прорисовки переделывать.
Такое есть в QuantumGrid, но он небесплатен. Да и слишком уж наворочен, изучать и изучать...

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 18 май 2007, 07:41

WildSery писал(а):В стандартных гридах - никак.
Я делал строки, подстраивающие высоту под данные в TDrawGrid.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 18 май 2007, 09:36

Dimitry Sibiryakov писал(а):Я делал строки, подстраивающие высоту под данные в TDrawGrid.
Никто и не говорил, что это невозможно, только, что нет стандартных методов для этого.
Самому нарисовать-то что угодно можно ;)

AnryGTR
Сообщения: 116
Зарегистрирован: 15 янв 2007, 15:58

Сообщение AnryGTR » 18 май 2007, 22:38

Спасибо за ответы...
2 Dimitry Sibiryakov:
если можно - опиши как ты это делал? :)

break
Сообщения: 58
Зарегистрирован: 12 май 2005, 11:03

Сообщение break » 19 май 2007, 00:01

Можно сделать чтобы при наведении указателя мыши над такой ячейкой в виде Hint-а всплывал полный текст того что в ней не поместилось, а еще как то встречал компонент TopGrid в котором строки могли быть разной высоты - как раз тот случай..

AnryGTR
Сообщения: 116
Зарегистрирован: 15 янв 2007, 15:58

Сообщение AnryGTR » 19 май 2007, 00:10

TopGrid - что за зверь, где мона скачать, если что скинь ссылу!
Спасибо за ответ, но мне не пойдёт Хинт, так как данных много и оператор должен видеть их сразу, а так ему придётся на каждый тыкать... :?

break
Сообщения: 58
Зарегистрирован: 12 май 2005, 11:03

Сообщение break » 20 май 2007, 21:56

Ищется легко в любом поисковике, но правда не знаю сколько он стоит, в наборе компонент есть 3 грида, мне попадалась демо версия набора с частью исходников и скомпиленными BPL в любом случае все работало и я имел возможность проверить возможность вывода строк разной ширины, а именно:

В компоненте TosAdvDBGrid есть свойство RowOptions.ResizeRows, значением которого необходимо поставить rrSingle - после этого пользователь может раздвигать строки отдельно, т.е. меняется ширина каждой отдельной строки - а остальные остаются на месте, значит наверное можно в соответствующем методе типа OnPaintCell или каком то похожем проверять длину текста в ячейке и в случае необходимости увеличивать высоту. Как я понял это и требуется.

Надо попросить автора EhLib такую созможность добавить, сейчас у него на сайте вроде как группа поддержки даже организована - для всех желающих из СНГ, а недавно даже версия немного обновилась, если несколько человек напишет он наверняка сделает...

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 21 май 2007, 02:14

Цитата из справки к EhLib 4.1:
"Возможности, не поддерживаемые текущей версией TDBGridEh .
Данная версия TDBGridEh не поддерживает следующие возможности:
TDBGridEh не может иметь индивидуальную высоту строк для каждой строки данных.
TDBGridEh не может объединять ячейки данных горизонтально и вертикально."

Так что Большаков об этих фичах в курсе и теоретически когда-нибудь их сделает...

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 21 май 2007, 10:52

TopGrid стоит $149, что тоже немало.
Хотя, по сравнению с $399 для QuantumSuite...
Если организация - требуй, это копейки. А из своего кармана, я бы сам нарисовал. К тому же, это время ещё мне бы и оплатили :)

Ответить