Как использовать разные стили шрифта и значок в ячейке сетки Firemonkey - PullRequest
4 голосов
/ 06 марта 2012

Похоже, что по этому предмету не так много информации, так что, надеюсь, кто-то может дать некоторые предложения.

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

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

Можно ли также отобразить значок в ячейке сетки строк?

1 Ответ

0 голосов
/ 13 марта 2012

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

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

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

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

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

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

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

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

...