【问题标题】:VCL-Styles embedded in dll?嵌入在 dll 中的 VCL 样式?
【发布时间】:2012-03-30 23:48:04
【问题描述】:

如何在 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 安装文件夹的完整路径是我想要避免的。

【问题讨论】:

  • 您可以使用“项目资源”对话框执行相同操作。此外,RC 对相对路径感到满意。

标签: delphi delphi-xe2 vcl-styles


【解决方案1】:

您可以使用的其他选项

1) 使用资源对话框。

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>

【讨论】:

  • 谢谢,以前从未注意到资源对话框。两个建议都不错。
  • 我已经添加了资源,它在我的 cbproj 中为:ResourceItemVCLSTYLEAMAKRITS 现在如何动态访问呢?我尝试了 TStyleManager::SetStyle 但它抛出了一个无法找到样式的异常。我还需要做其他事情吗?
【解决方案2】:

它也适用于我们(感谢 Rodrigo)。只是一些细节

  • 不要指望在 Resource Type Combo Box 的列表中找到 VCLSTYLE,您必须手动输入。

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2013-09-01
      • 2017-07-21
      • 2012-08-25
      • 2014-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      相关资源
      最近更新 更多