2012-03-14 103 views
4

如何將Delphi XE2 VCL樣式嵌入到dll中?應用程序 - 外觀頁面在DLL項目的項目設置中不可見。嵌入在DLL中的VCL樣式?

我試着在$ 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的安裝文件夾是我想避免的。

+0

您可以使用「項目資源」對話框執行相同操作。此外,RC對相對路徑感到滿意。 – OnTheFly 2012-03-14 14:05:13

回答

7

您可以使用的另一個選項

1)使用資源對話框。

enter image description here

2)編輯您的DLL

下此鍵<PropertyGroup Condition="'$(Base)'!=''">

的dproj文件添加一個條目VCL_Custom_Styles對VCL風格

<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> 
+0

謝謝,之前從未注意到資源對話框。這兩個建議都很好。 – 2012-03-14 21:15:05

+0

我添加了資源,它位於我的cbproj中: ResourceItem VCLSTYLE AMAKRITS 現在如何動態訪問它?我嘗試了TStyleManager :: SetStyle,但它引發了一個異常,該風格無法找到。我需要做其他事嗎? – Bizmarck 2016-02-23 19:06:27

1

它爲我們工作也(感謝羅德里戈)。只是一些細節

  • 不要指望找到資源類型組合框列表上的VCLSTYLE,你必須手動鍵入它。

  • 不要錯過初始化DLL中的樣式,我們將下一個代碼添加到FormCreate事件中: TStyleManager.SetStyle('Carbon');

0

要正確訪問到作爲資源添加樣式檢查要添加到uses子句兩個單元:Vcl.Themes,Vcl.Styles。