2012-03-06 4 views
4

По всей видимости, информация об этой теме не так много, поэтому, надеюсь, кто-то может дать некоторые предложения.Как использовать разные стили шрифта и значок в ячейке stringgrid Firemonkey

Я хотел бы изменить цвет и стиль различных частей текста в ячейке stringgrid.

Пример: 20.02.2011 - Название документа

бы также можно показать иконку в StringGrid камере?

+2

В одной ячейке? Если это так, я ожидаю, что вам нужно будет использовать TGrid, а затем создать пользовательскую ячейку/столбец, в которой есть два компонента TText, один с каждым шрифтом (но заметьте, что я нашел проблемы с настройкой шрифта в стиле). См. Мою статью для пользовательских ячеек сетки: http://monkeystyler.com/blog/entry/firemonkey-grid-basics-custom-cells-and-columns –

ответ

0

На самом деле можно показывать значки или растровые изображения в сетке строк, в блоге Monkey Styler представлен пример настройки отображения соты в сетке FMX.

http://monkeystyler.com/blog/entry/firemonkey-grid-basics-custom-cells-and-columns

Думая о другой части вашего вопроса, хотя, вы должны будете создать стиль до отображения текста в различных шрифтах, пока FMX не имеет Richtext эквивалента или HTML-рендеринг компонентов (I» я уверен, что последнее придет, первое я не уверен в получении на некоторое время!). Вам нужно будет иметь текстовый компонент в стиле для каждого разного размера шрифта/стиля и т. Д., Вам нужно будет назвать текстовые элементы (используя свойства привязки или stylename) и обработать настройку содержимого текста, используя код в ongetvalue и onsetvalue события (я думаю, вы могли бы также использовать событие onapplystyle), чтобы отобразить текст полужирным шрифтом, а некоторые нет.

Обработчик событий затем использовал бы привязку, которую легче установить, но - по моему опыту - глючит;

mycell.binding['boldtext']:='sometext'; 

Или найти элемент стиля по стилям с помощью findstyleresource;

tempobj:=mycell.findstyleresource('boldtext'); 
if tempobj is ttext then 
    ttext(tempobj).text='sometext'; 

Оправдания любого плохой стиль кодирования, но вы получите общее представление (я надеюсь), если вы установите Autosize истину для компонентов TText в стиле и выровнять их влево вы получите - в основном - то, что вы после , Единственная проблема заключается в том, что полученный текст выглядит не совсем бесшовным, потому что автоматизация и выравнивание слева не дает вам одинакового пространства между шрифтами, которые вы получите с помощью richtext или HTML-дисплея. Вы должны быть в состоянии возиться с отступом (давая ему отрицательное число для левой прокладки, чтобы вы могли удалить лишнее пространство), но вам нужно жить с тем, что не совсем идеально по сравнению с правильными намеками и выравниванием шрифтов.

+0

Paul, моя статья относится к TGrid, а не к TStringGrid. Я никогда не использовал строчную сетку в FMX, поэтому не могу прокомментировать, будет ли она работать или нет. –

+0

Я использовал его только в качестве примера, чтобы вы могли заставить эти два компонента работать в ячейке; не то, чтобы это действительно работало в компоненте stringgrid (не для того, чтобы я использовал его, я бы тоже использовал сетку) –

Смежные вопросы