VCL-стили, встроенные в dll? - PullRequest
4 голосов
/ 14 марта 2012

Как мне встроить Delphi XE2 VCL-стили в dll?Страница Application - Appearance не отображается в настройках проекта для DLL-проектов.

Я попытался определить их в rc-файле, включенном в директиву $ R, которая работает, но если есть лучший способ, я бы хотелзнать.

Пример RC-файла:

GOLDENGRAPHITE VCLSTYLE "C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\Redist\styles\vcl\GoldenGraphite.vsf"
CARBON VCLSTYLE "C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\Redist\styles\vcl\Carbon.vsf"

В частности, я не хочу указывать полный путь к папке установки XE2.

Ответы [ 3 ]

7 голосов
/ 14 марта 2012

Другие опции, которые вы можете использовать

1) Использование диалога ресурсов.

enter image description here

2) Редактирование файла dproj вашей dll

под этим ключом <PropertyGroup Condition="'$(Base)'!=''">

Добавить одну запись VCL_Custom_Styles дляvcl styles

<VCL_Custom_Styles>&quot;Amakrits|VCLSTYLE|$(PUBLIC)\Documents\RAD Studio\9.0\Styles\Amakrits.vsf&quot;;&quot;Amethyst Kamri|VCLSTYLE|$(PUBLIC)\Documents\RAD Studio\9.0\Styles\AmethystKamri.vsf&quot;;&quot;Aqua Graphite|VCLSTYLE|$(PUBLIC)\Documents\RAD Studio\9.0\Styles\AquaGraphite.vsf&quot;</VCL_Custom_Styles>
1 голос
/ 01 февраля 2013

У нас это тоже работает (спасибо Родриго).Просто пара деталей

  • Не ожидайте найти VCLSTYLE в списке поля со списком типов ресурсов, вы должны ввести его вручную.

  • Не пропустите инициализацию стиля в вашей DLL, мы добавляем следующий код в событие FormCreate: TStyleManager.SetStyle ('Carbon');

0 голосов
/ 05 мая 2017

Для правильного доступа к стилю, добавленному в качестве проверки ресурса, вы добавляете к условию использования оба блока: Vcl.Themes, Vcl.Styles.

...