Форум » GUI » Вывод разноцветной строки » Ответить

Вывод разноцветной строки

Pasha: Есть ли в какой-нибудь гуевой библиотеке класс, позволяющий выводить строку не одним цветом, а с возможностью указания цвета для символа в определенной позиции строки ? Меня больше интересует для вывода в гриде/бровсе, хотелось бы посмотреть пример, как это можно сделать.

Ответов - 4

SergKis: Pasha пишет Меня больше интересует для вывода в гриде/бровсе, хотелось бы посмотреть пример, как это можно сделать. В районе 2005-2012 г. использовал HtmLayout.dll для разноцветных слов в гриде\таблице где <tr><td>+<span> позволяло достаточно просто это проделывать. Но эта dll ушла. Проги на ней еще работают. На hm: - на Browse красил только строки (многострочности в колонке нет). - для Label сделал класс см. Samples\Basic\Colored_Label - на TsBrowse красил колонки многострочные, нужно слова было. На TsBrowse есть ф-я [pre2] TSDrawCell( hWnd, ; // 1 hDC, ; // 2 xRow, ; // 3 nStartCol , ; // 4 aColSizes[ nJ ], ; // 5 uData, ; // 6 nAlign , ; // 7 nClrFore, ; // 8 nClrBack, ; // 9 hFont, ; // 10 hBitMap, ; // 11 nHeightCell, ; // 12 oColumn:l3DLook, ; // 13 nLineStyle, ; // 14 nClrLine, ; // 15 0, ; // 16 header/footer/super nHeightHead, ; // 17 nHeightFoot, ; // 18 nHeightSuper, ; // 19 nHeightSpecHd, ; // 20 lAdjBmp, ; // 21 lMultiline, ; // 22 nVAlign, ; // 23 nVertText, ; // 24 nClrTo, ; // 25 lOpaque, ; // 26 If( lBrush, nClrBack:hBrush, 0 ), ; // 27 l3DText, ; // 28 3D text nClr3dL, ; // 29 3D text light color nClr3dS ) // 30 3D text shadow color nStartCol += aColSizes[ nJ ] [/pre2] для вывода колонок. Была мысль сделать разноцветный вывод ..., но показалось много переколбасить надо. Хотел многострочные колонки делать отдельными строками тсб с раскраской как есть сейчас по описанию + объединять строки DbSkiper-ом. Но клиент удовлетворился простой раскраской колонок тсб, я тем более

Pasha: Наверное ничего винапишного для такого вывода нет ? Надо самому выдавать DrawText для каждого символа отдельно, и считать пиксели ?

SergKis: Pasha пишет Наверное ничего винапишного для такого вывода нет ? Может, что в FiveWin есть - не сталкивался совсем. Может ActivX+IE+html или какая нибудь UI компонента (пробовал W2UI, на раскраску слов не обратил внимания, но таблицы\гриды + управление неплохо смотрятся). Надо самому выдавать DrawText для каждого символа отдельно, и считать пиксели ? Цель и частота использования, по мне основное в этом вопросе. для разовых дейсвий может и Labelов с SET KEY ... достаточно. Для таблиц. о себе говорю, использовал бы TsBrowse, но надо придумать тэги для цветов\фонтов в текстах колонок.


Pasha: Ага, нашел в примерах к fwh функцию DrawTextExArray, которая в цикле примерно так и работает: отдельно выводит фрагменты текста разным цветом. Спасибо. Теперь понятно, куда двигаться.



полная версия страницы