问题
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>"Amakrits|VCLSTYLE|$(PUBLIC)\Documents\RAD Studio\9.0\Styles\Amakrits.vsf";"Amethyst Kamri|VCLSTYLE|$(PUBLIC)\Documents\RAD Studio\9.0\Styles\AmethystKamri.vsf";"Aqua Graphite|VCLSTYLE|$(PUBLIC)\Documents\RAD Studio\9.0\Styles\AquaGraphite.vsf"</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