VCL-Styles embedded in dll?

偶尔善良 提交于 2019-12-30 09:35:27

问题


How do I embed Delphi XE2 VCL-Styles in a dll? The Application - Appearance page is not visible in project settings for DLL-projects.

I tried defining them in a rc-file included with a $R directive which works but if there is a better way I'd like to know.

RC-file example:

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"

In particular having to specify the full path to XE2-installation folder is something I want to avoid.


回答1:


Another options which you can use

1) Using the Resource dialog.

2) Editing the dproj file of your dll

under this key <PropertyGroup Condition="'$(Base)'!=''">

Add one Entry VCL_Custom_Styles for the 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>



回答2:


It works for us also (thanks Rodrigo). Just a couple of details

  • Don't expect to find the VCLSTYLE on the list of the Resource Type Combo Box, you have to type it manually.

  • Don't miss to initialize the style in your DLL, we add the next code to the FormCreate event: TStyleManager.SetStyle('Carbon');




回答3:


To access correctly to the Style added as a resource check you are adding to the uses clause both units: Vcl.Themes, Vcl.Styles.



来源:https://stackoverflow.com/questions/9703309/vcl-styles-embedded-in-dll

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!