Inno Setup 在 wpPreparing 页面上放置控件
Inno Setup Place controls on wpPreparing Page
我试图在 wpPreparing
页面上放置一个标签,以指示在 运行 新安装之前卸载现有版本。这是我的代码:
function PrepareToInstall(var NeedsRestart: Boolean): String;
var
UninstallingLabel: TNewStaticText;
intResultCode: Integer;
begin
with UninstallingLabel do
begin
Caption := 'Uninstalling existing version...';
Left := WizardForm.StatusLabel.Left;
Top := WizardForm.StatusLabel.Top;
Parent := wpPreparing.Surface;
end;
if strExistingInstallPath <> '' then
begin
Exec(GetUninstallString, '/verysilent /suppressmsgboxes', '', SW_HIDE,
ewWaitUntilTerminated, intResultCode);
end;
end;
问题是它似乎不喜欢 Parent := wpPreparing.Surface
并且编译失败并显示
Semicolon (;) expected
错误。将标签添加到自定义创建的页面时,此语法有效。为什么在尝试将其添加到 wpPreparing
时会失败?
我重播了你的代码。如果您仅使用 WizardForm
作为父项,它会起作用。但是它在表格的左上角...
wpPreparing
是保存相应页面 ID 的常量名称。
并且您必须创建 UninstallingLabel
的实例
wpPreparing
不是 object,它只是一个数值常量。
WizardForm.PreparingPage
包含对 "Preparing to Install" 页面的引用。请注意,它已经是 TNewNotebookPage
类型,而不是 TWizardPage
。所以你直接用它作为 parent.
另请注意 StatusLabel
在 "Installing" 页面上。您可能希望将新标签关联到 PreparingLabel
。
并且您必须创建 UninstallingLabel
。
UninstallingLabel := TNewStaticText.Create(WizardForm);
with UninstallingLabel do
begin
Caption := 'Uninstalling existing version...';
Left := WizardForm.PreparingLabel.Left;
Top := WizardForm.PreparingLabel.Top;
Parent := WizardForm.PreparingPage;
end;
虽然你真的想遮蔽 PreparingLabel
(因为你使用它的坐标)。
重新使用它怎么样?
WizardForm.PreparingLabel.Caption := 'Uninstalling existing version...';
我试图在 wpPreparing
页面上放置一个标签,以指示在 运行 新安装之前卸载现有版本。这是我的代码:
function PrepareToInstall(var NeedsRestart: Boolean): String;
var
UninstallingLabel: TNewStaticText;
intResultCode: Integer;
begin
with UninstallingLabel do
begin
Caption := 'Uninstalling existing version...';
Left := WizardForm.StatusLabel.Left;
Top := WizardForm.StatusLabel.Top;
Parent := wpPreparing.Surface;
end;
if strExistingInstallPath <> '' then
begin
Exec(GetUninstallString, '/verysilent /suppressmsgboxes', '', SW_HIDE,
ewWaitUntilTerminated, intResultCode);
end;
end;
问题是它似乎不喜欢 Parent := wpPreparing.Surface
并且编译失败并显示
Semicolon (;) expected
错误。将标签添加到自定义创建的页面时,此语法有效。为什么在尝试将其添加到 wpPreparing
时会失败?
我重播了你的代码。如果您仅使用 WizardForm
作为父项,它会起作用。但是它在表格的左上角...
wpPreparing
是保存相应页面 ID 的常量名称。
并且您必须创建 UninstallingLabel
wpPreparing
不是 object,它只是一个数值常量。
WizardForm.PreparingPage
包含对 "Preparing to Install" 页面的引用。请注意,它已经是 TNewNotebookPage
类型,而不是 TWizardPage
。所以你直接用它作为 parent.
另请注意 StatusLabel
在 "Installing" 页面上。您可能希望将新标签关联到 PreparingLabel
。
并且您必须创建 UninstallingLabel
。
UninstallingLabel := TNewStaticText.Create(WizardForm);
with UninstallingLabel do
begin
Caption := 'Uninstalling existing version...';
Left := WizardForm.PreparingLabel.Left;
Top := WizardForm.PreparingLabel.Top;
Parent := WizardForm.PreparingPage;
end;
虽然你真的想遮蔽 PreparingLabel
(因为你使用它的坐标)。
重新使用它怎么样?
WizardForm.PreparingLabel.Caption := 'Uninstalling existing version...';