gpt4 book ai didi

inno-setup - Inno Setup 中较大的 "Select Components"页面

转载 作者:行者123 更新时间:2023-12-04 19:07:40 26 4
gpt4 key购买 nike

我一直在尝试使“选择组件”页面更大,如下图所示,包括组件内窗口(白色的),因为我有很多组件......并且当它变得更容易选择时是更大的窗口。如果有人能告诉我这是否可能,请给我一个提示或指出我的方向。

enter image description here

谢天谢地,
开始

最佳答案

基于您的 original script 我进行了以下更改。为了存储原始位置(顶部和高度值),我使用了一个整数数组,并制作了两个用于存储当前位置和恢复它们的通用程序。

恢复程序有 HeightOffset参数,您可以在其中指定值,在将输入的整数数组中的所有值传递给向导表单组件属性之前,将增加该值。除此之外,我已经声明了一个单独的标志,表明向导表单已修改大小。

我使用所有这些是因为它提高了脚本的可读性,并且很容易扩展到其他页面:

[Code]

type
TPositionStorage = array of Integer;

var
CompPageModified: Boolean;
CompPagePositions: TPositionStorage;

procedure SaveComponentsPage(out Storage: TPositionStorage);
begin
SetArrayLength(Storage, 10);

Storage[0] := WizardForm.Height;
Storage[1] := WizardForm.NextButton.Top;
Storage[2] := WizardForm.BackButton.Top;
Storage[3] := WizardForm.CancelButton.Top;
Storage[4] := WizardForm.ComponentsList.Height;
Storage[5] := WizardForm.OuterNotebook.Height;
Storage[6] := WizardForm.InnerNotebook.Height;
Storage[7] := WizardForm.Bevel.Top;
Storage[8] := WizardForm.BeveledLabel.Top;
Storage[9] := WizardForm.ComponentsDiskSpaceLabel.Top;
end;

procedure LoadComponentsPage(const Storage: TPositionStorage;
HeightOffset: Integer);
begin
if GetArrayLength(Storage) <> 10 then
RaiseException('Invalid storage array length.');

WizardForm.Height := Storage[0] + HeightOffset;
WizardForm.NextButton.Top := Storage[1] + HeightOffset;
WizardForm.BackButton.Top := Storage[2] + HeightOffset;
WizardForm.CancelButton.Top := Storage[3] + HeightOffset;
WizardForm.ComponentsList.Height := Storage[4] + HeightOffset;
WizardForm.OuterNotebook.Height := Storage[5] + HeightOffset;
WizardForm.InnerNotebook.Height := Storage[6] + HeightOffset;
WizardForm.Bevel.Top := Storage[7] + HeightOffset;
WizardForm.BeveledLabel.Top := Storage[8] + HeightOffset;
WizardForm.ComponentsDiskSpaceLabel.Top := Storage[9] + HeightOffset;
end;

procedure InitializeWizard;
begin
CompPageModified := False;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurpageID = wpSelectComponents then
begin
SaveComponentsPage(CompPagePositions);
LoadComponentsPage(CompPagePositions, ScaleY(200));
CompPageModified := True;
end
else
if CompPageModified then
begin
LoadComponentsPage(CompPagePositions, 0);
CompPageModified := False;
end;
end;

关于inno-setup - Inno Setup 中较大的 "Select Components"页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20584671/

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