如何在 Inno Setup 中将 VCL 样式应用到基于 DLL 的表单?

2024-04-07

我正在将 Inno Setup (Unicode) 与我在 Delphi XE2 中编写的一组 DLL 一起使用。 DLL 具有在安装向导/安装过程中显示的 VCL 形式。

我已经尝试过实施 VCL 样式 https://code.google.com/p/vcl-styles-utils/wiki/VCLStylesInnoSetup在我的 Inno Setup 安装程序中。一切都很好,除了在这些 DLL 中创建的表单之外。有些形式是蒙皮的,但不是全部......

正如您所看到的,表单的背景颜色、列表视图背景颜色和字体颜色都发生了变化。但是,列表视图标题、进度条和表单边框仍然是旧样式。

如何使这些 DLL 中的表单显示正确的样式?


Inno Setup 的 VCL Styles 插件仅设计用于在 Inno Setup 中的窗体和控件上绘制样式。为了让这些 DLL 中的表单换肤,您需要从 DLL 中导出一个函数,Inno Setup 可以在文件名中传递该函数...

创新设置

[Code]
#define public VclStyleFile "Carbon (2).vsf"

procedure DllLoadStyle(const StyleFilename: WideString);
  external '[email protected] /cdn-cgi/l/email-protection stdcall';

function InitializeSetup: Boolean;
begin
  ExtractTemporaryFile('{#VclStyleFile}');
  LoadVCLStyleW(ExpandConstant('{tmp}\{#VclStyleFile}'));
  DllInit; //Presumed your DLL needs to initialize / instantiate the form
  DllLoadStyle(ExpandConstant('{tmp}\{#VclStyleFile}'));
  ...
end;

德尔福动态链接库

uses
  Vcl.Themes,

procedure DllLoadStyle(const StyleFilename: WideString); stdcall;
begin
  TStyleManager.SetStyle(TStyleManager.LoadFromFile(StyleFilename))
end;

exports
  DllLoadStyle;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Inno Setup 中将 VCL 样式应用到基于 DLL 的表单? 的相关文章

随机推荐

  • 动态调用函数 - Python

    我有一个功能列表 例如 def filter bunnies pets def filter turtles pets def filter narwhals pets 有没有办法通过使用代表其名称的字符串来调用这些函数 e g filte
  • 如何更新 GridView / ListView 的每个元素上的 ProgressBar 状态?

    目前我有一个 GridView 每个元素都应该有一个单独的 ProgressBar 这些元素代表单独的下载 我想使用这些进度条显示下载的状态 但我应该如何更新它们呢 我的问题是 根据文档 以及我在 Google IO 视频中听到的内容 更新
  • 我应该实际使用哪个版本的 jQuery? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 所以几个月前 有一段时间我实际上并不需要 jQuery 来完成任何事情 并且几乎忘记了它 然后我醒了 所以 我前往http jquery
  • C++ 迭代模板 Map

    当我有一个包含模板映射和一个模板类const iterator声明如下代码typedef 如何迭代类外部映射的元素 例如 main 中以将它们打印在输出上 template
  • 删除小于X的数组元素

    我有数组 arr1 array 5 3 9 11 6 15 arr2 array 11 20 1 3 8 现在我需要循环遍历 arr1并找到小于的最大数X foreach arr1 as x need element that is MAX
  • 如何在 Laravel 中使用主密码登录用户?

    在 Laravel 中 我想使用主密码登录我的任何用户帐户 这是我在控制器中尝试过的 if Input get password master password email Input get email user User find em
  • 通过 YAML 发布管道运行 azure powershell 脚本

    我有正常且工作的发布管道 通过给定的某个部署组 该管道执行一些任务 复制脚本 执行该 powershell 脚本 在部署组中定义的目标计算机上 删除脚本 我知道 YAML 不支持部署组 但是 幸运的是我 到目前为止我的部署组只有一台机器 我
  • UI 测试 - isSelected 始终返回 false

    我们最近使用 Xcode 8 2 1 8C1002 将 Swift 2 3 项目更新为 Swift 3 现在大多数与 tableViews 和 isSelected 属性相关的 UI 测试都不起作用 即使选择了对象 它也始终返回 false
  • mysql 无法添加外键?

    我使用MySQL Workbench在表中添加外键 但发生了一些奇怪的错误 这是SQL语句 ALTER TABLE tansung Declaration ADD COLUMN goodsId INT 11 NOT NULL AFTER d
  • 如何获取 UIScrollView 中的当前缩放级别?

    为了尝试创建一种解决方法 使图像在 UIScrollView 中居中并使其表现得像 Apple 的照片应用程序一样 我需要获取当前的缩放级别并使用该数字来计算图像在每个缩放级别应插入的量 注意 我知道一些程序员通过将图像集中在与滚动视图大小
  • 当不应该使用整数和双精度数时会给出不同的答案

    我正在解决欧拉项目问题14 https projecteuler net problem 14使用java 我并不是寻求帮助解决问题 我已经解决了 但我遇到了一些我无法弄清楚的事情 问题是这样的 为正集合定义以下迭代序列 整数 n n 2
  • 关于构建列表直至满足条件

    我想解决 巨猫军团之谜 https youtu be YeMVoJKn1Tg由 Dan Finkel 使用 Prolog 编写 基本上你从 0 然后使用以下三个操作之一构建此列表 添加5 添加7 或采取sqrt 当您成功建立一个列表后 您就
  • PyQt5:派生 QWidget 类中带有元类的 Mixin 的问题

    我在尝试将具有元类的 mixin 添加到基类是 QWidget 的类时遇到问题 我知道 PyQt5支持协作多重继承 http pyqt sourceforge net Docs PyQt5 multiinheritance html如果我的
  • iPhone在线多人游戏需要什么类型的网络编程?

    我问这个问题是关于游戏编程的问题系列的一小部分 Refer this https stackoverflow com questions 3131780 multiplayer game in iphone concept strategy
  • 原子打字稿找不到打字

    我刚刚使用atom typescript 在 Atom 中配置了一个新的 Angular Typescript 项目 该项目设置有一个主角度模块文件 用于导入所有模块 包括类型定义文件 一切都在 gulp 中编译并且运行没有问题 由于我使用
  • 管理角色并向角色分配权限 - Symfony

    我正在 Symfony 3 中基于角色和权限构建一个管理面板 每个管理员将被分配一个角色 或多个角色 然后他将能够根据分配给该角色的权限执行操作 为了给您一个想法 这里有一个例子 管理面板具有添加用户 编辑用户和删除用户的功能 我创建了一个
  • FunctionName 的调用容器没有响应

    尝试端口转发docker化的Lambda to my 本地主机使用命令 sam local start api docker network host 每次尝试访问 Lambda 时都会出错 FunctionName 的调用容器没有响应 也
  • 如何检测强制更新

    当远程分支历史记录发生更改时 您通常会得到 o email protected cdn cgi l email protection XXXXX Project git efe2e8b cda0ee7 HEAD gt Ant Config
  • 如何在 Windows 上通过 XAMPP 避免(本地)Wordpress 中的图像 URL 出现 403 错误?

    Windows XP SP3 Xampp 1 8 1 PHP 5 4 7 WordPress 3 5 1 所有驱动器均使用 NTFS 我认为我的问题类似于this one https stackoverflow com questions
  • 如何在 Inno Setup 中将 VCL 样式应用到基于 DLL 的表单?

    我正在将 Inno Setup Unicode 与我在 Delphi XE2 中编写的一组 DLL 一起使用 DLL 具有在安装向导 安装过程中显示的 VCL 形式 我已经尝试过实施 VCL 样式 https code google com