Introduction
As part of the VCL Styles Utils project, I made a plugin (dll) to skin the installers created by Inno setup. The current size of the plugin is about 1.6 mb, but when is included (and compressed) in the script only add ~490 Kb to the final installer.
How to use it
In order to use the plugin you must follow these steps
- Add the VclStylesinno.dll file to your inno setup script and the VCL Style file to use.
- Import the function LoadVCLStyleW for Unicode versions of Inno setup or the LoadVCLStyleA method for the Ansi version
- Import the function UnLoadVCLStyles
- In the InitializeSetup function extract the style to use and call the LoadVCLStyle method passing the name of the style file
- Finally in the DeinitializeSetup function call the UnLoadVCLStyles method.
Check the next sample script
[Files] Source: ..\VclStylesinno.dll; DestDir: {app}; Flags: dontcopy Source: ..\Styles\Amakrits.vsf; DestDir: {app}; Flags: dontcopy [Code] // Import the LoadVCLStyle function from VclStylesInno.DLL procedure LoadVCLStyle(VClStyleFile: String); external 'LoadVCLStyleW@files:VclStylesInno.dll stdcall'; // Import the UnLoadVCLStyles function from VclStylesInno.DLL procedure UnLoadVCLStyles; external 'UnLoadVCLStyles@files:VclStylesInno.dll stdcall'; function InitializeSetup(): Boolean; begin ExtractTemporaryFile('Amakrits.vsf'); LoadVCLStyle(ExpandConstant('{tmp}\Amakrits.vsf')); Result := True; end; procedure DeinitializeSetup(); begin UnLoadVCLStyles; end;
TODO
- Add support for TFolderTreeView and TStartMenuFolderTreeView components
- Add support for themed controls in the TNewCheckBoxList component
- Add support for the npbstMarquee style in the TNewProgressBar component
Source code and Installer
The source code and installer is available on Github.
As always all your comments and feedback is welcome.
December 11, 2013 at 5:58 pm
Beautiful! I did not see in your article what minimum version of Delphi is required. (But I did see on the project home page.)
December 11, 2013 at 6:00 pm
Thanks. This is a dll compiled using Delphi XE2, I used this version because produces smaller binaries than XE5.
December 11, 2013 at 10:27 pm
Absolutely brilliant. Many thanks …
December 12, 2013 at 12:40 am
Very cool!
December 12, 2013 at 4:04 am
Well done! Thanks alot!
December 12, 2013 at 7:06 am
Do you sleep sometimes
Pingback: VCL Styles for Inno Setup | Delphi Programming ...
December 12, 2013 at 10:20 am
Nice! What is the minimum version number of Inno Setup required?
December 12, 2013 at 10:39 am
Alvaro, The plugin was tested with the 5.5.4 inno setup version.
December 12, 2013 at 12:45 pm
Very nice addition to InnoSetup. Did find one small bug. Please feel free to email me for additional details. To replicate, just run the VCLStylesDemo project and cancel. The text in the Exit Setup dialog does not word wrap. You only see “Setup is not complete. If you exit now, the program will not be installed. You ma”.
December 12, 2013 at 2:12 pm
You are welcome and thanks for you feedback, the word wrap issue was just fixed. You can download the installer again and check.
December 13, 2013 at 4:23 am
That fixed the problem. Ran into another bug when using a dark theme like Amakrits. On the License page the the text for the radio buttons (I accept the agreement/I do not accept the agreement) is black and thus almost impossible to see. The other text on the page is what and readable.
December 13, 2013 at 10:25 am
Thanks for your feedback again, can you please report this issue using the issue page of the project. http://code.google.com/p/vcl-styles-utils/issues/list
December 15, 2013 at 10:18 am
there is a serious access violation crash when rightclick the installer setup titlebar :)
December 17, 2013 at 11:04 am
Sorry but I can’t reproduce this issue. Can you please report this using the issue page of the project http://code.google.com/p/vcl-styles-utils/issues/list ?
December 17, 2013 at 3:04 pm
i have downloaded “SetupVCLStylesInno.exe” from your dropbox, started it, welcome page appeared
went to the titlebar “Setup – VCL Styles for Innosetup” and did a right mouse button click on it and it crashes
December 18, 2013 at 3:06 pm
This bug was fixed in the last version (1.0.7.51).
December 26, 2013 at 5:28 am
Hi there , i am having an issue with the code :( .. it compiles well , but when i try to run the installer it appears this error(image link)

December 26, 2013 at 11:03 am
It seems which you are using the Ansi version of Inno setup, so you must import the function LoadVCLStyleA instead.
December 26, 2013 at 1:41 pm
Thank you very much, it works like a charm , one more thing , if i may, is there any way to edit/create some themes? Thank you in advance for support :)
December 26, 2013 at 1:55 pm
The themes used by the plugin can be created and edited using the VCL Style Designer (http://docwiki.embarcadero.com/RADStudio/XE2/en/VCL_Style_Designer)
December 26, 2013 at 11:54 pm
Thanks for sharing.
But there’s one more thing. If you build multi-languages setup, the themes cannot apply on the first selection language.
December 27, 2013 at 12:37 am
Hi Juan, please report this, using the issue page of the project http://code.google.com/p/vcl-styles-utils/issues/list. Thanks.
January 11, 2014 at 4:38 am
Nice
May 30, 2014 at 8:46 am
It’s a wonderfull idea to customize setup but I have an exception in InitializeSetup() function on LoadVCLStyle() line… With the message “External Exception EEDFADE… Could you help me ?
May 30, 2014 at 11:40 am
Hi, please report this in the issue page of the project https://code.google.com/p/vcl-styles-utils/issues/list
July 4, 2014 at 2:50 am
how do i make the about button go black, done everything but still no luck, any help bro
July 4, 2014 at 12:38 pm
Can you please elaborate your question?
April 2, 2015 at 3:55 pm
@Rodrigo
I have inno setup script
but I have problem for apply VCL :(
help bor :)
April 2, 2015 at 9:32 pm
work fine in new script
but I have a problem in my old script m any help bro?
April 2, 2015 at 9:36 pm
Please use the issue page (https://github.com/RRUZ/vcl-styles-plugins/issues) of the project to report any problem.
April 7, 2015 at 8:09 pm
@Rodrigo
how to skin in unstall? code please
April 8, 2015 at 12:55 am
Check the Uninstaller sample script located in the wiki page – https://github.com/RRUZ/vcl-styles-plugins/wiki/Inno-Setup
April 9, 2015 at 1:26 am
work now
thank u my brother :)
August 17, 2015 at 8:05 pm
I don’t know this mean
“Import the function LoadVCLStyleW for Unicode versions of Inno setup or the LoadVCLStyleA method for the Ansi version”
success compile, but the skin does not change
how to solve this?
August 17, 2015 at 8:43 pm
Please check the samples in the page of the project https://github.com/RRUZ/vcl-styles-plugins/wiki/Inno-Setup
October 28, 2015 at 6:05 pm
Missing dependency files for included binaries inside SetupVCLStylesInno.exe v1.5.1.0
SHA-1 fd3e6a4452e28fbacf0e01d9d7e76091efa8fa5e
BitmapStyleDesigner.exe v17.0.4625.53395
SHA-1: 8625ad680d701b7f49d6afabbbcfae74a9435814
designide170.bpl
rtl170.bpl
vcl170.bpl
vclactnband170.bpl
vclimg170.bpl
vclx170.bpl
xmlrtl170.bpl
VclStyleViewer.exe v17.0.4625.53395
SHA-1: 7937f70eed12ca70b23cc7cd778e40f68c71ab04
rtl170.bpl
vcl170.bpl
vclactnband170.bpl
vclx170.bpl
just add if allowed the missing bpls aside binaries in updated installer and please create a noinstall zip version
it is pretty annoying to unpack installer again and again manually when updated……
TDWP
October 28, 2015 at 8:57 pm
Thanks for the report. I just created (and fixed) a new issue in the project page (https://github.com/RRUZ/vcl-styles-plugins/issues/23) of the plugin. Try the new installer. Also if you want report any issue or suggest a new feature please use the issue page of the project.
November 11, 2015 at 12:28 pm
Ok the installer SetupVCLStylesInno.exe has a style, when I create using the sample I dont see any style change. Currently using Windows 7 Pro SP 1, Inno Setup 5.5.6. Ideas?
November 11, 2015 at 12:38 pm
Hi Brian, please use the issue page of the project to report this, attaching the script which you are using.
August 27, 2016 at 1:10 pm
Really, we must download 3 GB of Delphi installation to compile the dll? I remember that time ago the installer was downloadable in this site, why you just don’t publish a release in your Github with the project COMPILED for those like me who don’t want to spent time (and residous) by intalling and unindtalling delphi IDE just to compile the project?.
Thankyou anyways
August 27, 2016 at 1:56 pm
The installer is available in github, check at the end of the page https://github.com/RRUZ/vcl-styles-plugins/wiki/Inno-Setup
October 16, 2016 at 3:21 am
Hi Rodrigo,
When I use the darker styles with InnoSetup the text is virtually unreadable. The font colour appears to be black when it should be white.
Inno Script Studio 5.5.9 (u)
VCL Styles Inno 1.5.4.1
Here are two examples of the problem:
Thanks,
Steve
October 16, 2016 at 10:49 pm
Hi Steve, please report this using the issue page of the project https://github.com/RRUZ/vcl-styles-plugins/issues
September 4, 2017 at 8:03 pm
Hey Rodrigo! thanks for your work! I tried using your dll in my project, but none of the skins are loaded. Even I tried compiling your samples and none of the skins are shown there either. I’m using Inno Setup 5.5.9 and Windows 10 64bit build 1703. What can I try?
September 19, 2017 at 11:41 pm
Please follow the instructions of the wiki page https://github.com/RRUZ/vcl-styles-plugins/wiki/Inno-Setup, Also check if you are using the UNICODE or ANSI version of inno setup.
September 20, 2017 at 12:53 am
Hi, I’ve read many times the Wiki… followed all the instructions, triple checked my functions.. and nothing. Ah, the app VclStyleViewer.exe also doesn’t load any demo style, just Windows. Any clue? As I said, I ran the sample scripts and didn’t load any skin. If you need additional info about anything just tell me :) I’m using the Inno version that downloads the Quick Start Pack (I use the Inno Script Studio and ISSI).
Thanks for your help.
September 22, 2017 at 10:45 pm
Erick, please open a new issue in the GitHub page (https://github.com/RRUZ/vcl-styles-plugins/issues) attaching all the info provided in your comments. like Windows version (full version including build number), Inno setup version (including if is Unicode or ANSI).
November 29, 2017 at 6:40 pm
thank you very much, nice coder;