gpt4 book ai didi

inno-setup - 如何执行显示 Inno Select 语言对话框的代码

转载 作者:行者123 更新时间:2023-12-04 15:34:30 29 4
gpt4 key购买 nike

我需要在显示 Select Setup language Dialog 之前执行 pascal 代码,不幸的是 InitializeSetup 事件在之后执行。

function InitializeSetup(): Boolean; //This event occurs to late
begin
DoSomething();
Result := True;
end;

那么可以在显示选择安装语言对话框之前执行脚本代码吗?

enter image description here

最佳答案

我遇到了类似的问题,我考虑了不同的解决方法:手动设置所有设置,或进行内部本地化,但它们从一开始就注定了。
Select Setup language Dialog

我已经fork了issrc,在本地构建它,并查看了Setup项目的main.pas。我看到了现在这样做的想法:人们可能想要使用 {Language}InitializeSetup ,所以它在 AskForLanguage 之后调用方法。

为了检查这个想法,我对 main.pas 做了一些小改动:调用 AskForLanguage之后 CodeRunner启动和 InitializeSetup叫。我得到了 VCL 的选择安装语言对话框,但不是全部 - 非客户区不是 VCL 的:

enter image description here

我试图继承不是来自 TForm 的语言形式类但来自 TSetupForm ,或在设置过程中调用它或进行其他更改 - 没有结果。如果有人知道为什么它不是 VCL 的 - 请告诉我!

然后我读了Custom Window Frame Using DWM文章和刚刚制作的表格边框 bsNone得到了这个:

enter image description here

所以现在我很好。在许多样式设置页面之前没有样式的表单是如此......烦人。

如果我们想以正确的方式去做,我想所有需要做的就是移动 CodeRunner初始化之前 AskForLanguage , 并添加自定义代码函数,如 StyleInit或者。那么一切都会幸福的:{Language}将在 InitializeSetup 提供并且 Dialog 将被 VCL'ed。

关于inno-setup - 如何执行显示 Inno Select 语言对话框的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21612920/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com