bolega
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Подскажите как в cxGrid часть ячейки выделить жирным и со своим цветом, включая фон. В ячейке изначально memo-text. Отображается с автоподбором высоты ячейки. В TMS есть возможность отображать Html-текст, в девках как я понял, этой полезной фичи нет. Пришлось делать через richedit: тип редактора ячейки заменил на richedit, источник данных - memtable, в нее, в поле blob раскрашенные строки помещаются из запроса, раскраска выполняется так: берется строка из запроса (tstringfield), запихивается в невидимый на форме TRichEdit, в нем раскрашивается, и из него уже перетекает в memtable. Все вообщем-то работает, и довольно быстро, но есть недостатки (видимо, баги девок): - cxGrid часто неправильно рассчитывает высоту ячейки для richedit, в котором часть (и только часть!) текста - bold. В результате часто конец текста не виден в ячейке, как будто не помещается. - если часть текста имеет фон, то все ячейки типа Richedit во во всех последующих колонках грида имеют текст полностью на таком же фоне, как будто забыли сброс фона сделать при их отрисовке. Эффект забавный: если например перемещать по таблице колонку, в которой впервые встречается цветной фон у части слов, то окраска возникает только у столбцов, следующих за данным. Никаких custom-draw не использую, т.е. в отрисовку не вмешиваюсь и баг явно не мой. В итоге от нужного функционала пришлось отказаться и сделать так: если есть цветной текст, то жирным делать весь текст ячейки (избегаем глюка в расчете высоты ячейки), и отказаться от расцветки фона вообще. Может кто сталкивался с такой задачей. Интересно какие есть еще решения. | Всего записей: 4624 | Зарегистр. 09-09-2002 | Отправлено: 12:09 15-06-2013 | Исправлено: bolega, 12:19 15-06-2013 |
|