Механизм, который позволяет использовать иконку символьного шрифта вместо картинки на кнопках.
Уж очень мне не нравится стандартный механизм добавления картинки на кнопку, поэтому, пару лет назад, начал искать альтернативу и остановился на символьных шрифтах (таких как FontAwesome). Вот что из этого получилось:
IconicFontGlyph.zip
Под Windows работает без проблем - на других системах не пробовал.
Как это работает
Добавляем в проект модуль UIExt.IconicFont.pas
Добавляем в проект модули описания шрифтов, которые будут использоваться (см. ниже)
Описываем символ, который будет использоваться в качестве иконки (см. ниже)
В обработчике события OnApplyStyleLookup кнопки пишем одну строчку - TIconicFont.ApplyButtonStyle(TCustomButton(Sender));
Модули описания шрифтов
UIExt.IconicFont.FA.pas - Font Awesome
UIExt.IconicFont.IM.pas - IcoMoon
UIExt.IconicFont.IML.pas - IcoMoon Lindua
UIExt.IconicFont.IMLN.pas - IcoMoon Linear
UIExt.IconicFont.MDI.pas - Material Design Icons
UIExt.IconicFont.WHHG.pas - WebHostingHub Glyphs
Описание символа
Для описания символа используется свойство StyleName (не знаю как остальные - лично я его нигде не использую). Само описание - это строка в определённом формате:
[Короткое имя шрифта];[код символа];[размер шрифта];[цвет]
2 первых поля - обязательны. Короткое имя шрифта можно увидеть в его модуле описания (TIconicFont.Short)
Примеры можно увидеть на скриншотах выше (текст над кнопками).
Ну и напоследок - небольшая демка IconicFontDemo.zip