嵌入在DLL中的VCL-Styles?

时间:2012-03-14 13:52:50

标签: delphi delphi-xe2 vcl-styles

如何在dll中嵌入Delphi XE2 VCL-Styles? “应用程序 - 外观”页面在DLL项目的项目设置中不可见。

我尝试在包含在$ R指令中的rc文件中定义它们,但是如果有更好的方法我想知道。

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 个答案:

答案 0 :(得分:7)

您可以使用的其他选项

1)使用“资源”对话框。

enter image description here

2)编辑dll的dproj文件

在此键<PropertyGroup Condition="'$(Base)'!=''">

为vcl样式添加一个条目VCL_Custom_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 :(得分:1)

它也适合我们(感谢Rodrigo)。只是几个细节

  • 不要指望在资源类型组合框列表中找到VCLSTYLE,您必须手动输入。

  • 不要错过初始化DLL中的样式,我们将下一个代码添加到FormCreate事件中: TStyleManager.SetStyle( '碳');

答案 2 :(得分:0)

要正确访问作为资源检查添加的样式,您要将uses子句添加到两个单位:Vcl.Themes,Vcl.Styles。