放大的 Inno Setup 向导中的长组件描述
Long components descriptions in enlarged Inno Setup wizard
我正在尝试让这个 Martin Prikryl 代码在我的设置中工作:Long descriptions on Inno Setup components
但是当我将 WizardSizePercent=121
放在 [Setup]
部分时,代码可以工作,但它有一些问题导致组件标题被 ComponentsList
重叠。
并且我尝试更改下面的代码(原始代码的结尾)但是没有用。这样做唯一可以改变的是改变 WizardForm.ComponentsList.Height
.
的高度
谁能帮我解决这个问题?
procedure InitializeWizard();
begin
SetTimer(0, 0, 50, CreateCallback(@HoverTimerProc));
CompLabel := TLabel.Create(WizardForm);
CompLabel.Parent := WizardForm.SelectComponentsPage;
CompLabel.Left := WizardForm.ComponentsList.Left;
CompLabel.Width := WizardForm.ComponentsList.Width;
CompLabel.Height := ScaleY(32);
CompLabel.Top :=
WizardForm.ComponentsList.Top + WizardForm.ComponentsList.Height - CompLabel.Height;
CompLabel.AutoSize := False;
CompLabel.WordWrap := True;
WizardForm.ComponentsList.Height :=
WizardForm.ComponentsList.Height - CompLabel.Height - ScaleY(8);
end;
我设法通过添加一个布尔变量解决了这个问题。
StopCall
变量以false
开头,如果是false
,则执行代码,然后设置为true
.
因此下一次执行CurPageChanged
时,该值将是true
并且代码不会添加新的标题。
var StopCall: Boolean;
procedure CurPageChanged(CurPageID: Integer);
begin
if StopCall = false then
begin
if CurPageID = wpWelcome then
begin
SetTimer(0, 0, 50, CreateCallback(@HoverTimerProc));
CompLabel := TLabel.Create(WizardForm);
CompLabel.Parent := WizardForm.SelectComponentsPage;
CompLabel.Left := WizardForm.ComponentsList.Left;
CompLabel.Width := WizardForm.ComponentsList.Width;
CompLabel.Height := ScaleY(22);
CompLabel.Top := WizardForm.ComponentsList.Top + WizardForm.ComponentsList.Height - CompLabel.Height;
CompLabel.AutoSize := False;
CompLabel.WordWrap := True;
WizardForm.ComponentsList.Height := WizardForm.ComponentsList.Height - CompLabel.Height - ScaleY(8);
StopCall := true;
end;
end;
end;
我正在尝试让这个 Martin Prikryl 代码在我的设置中工作:Long descriptions on Inno Setup components
但是当我将 WizardSizePercent=121
放在 [Setup]
部分时,代码可以工作,但它有一些问题导致组件标题被 ComponentsList
重叠。
并且我尝试更改下面的代码(原始代码的结尾)但是没有用。这样做唯一可以改变的是改变 WizardForm.ComponentsList.Height
.
谁能帮我解决这个问题?
procedure InitializeWizard();
begin
SetTimer(0, 0, 50, CreateCallback(@HoverTimerProc));
CompLabel := TLabel.Create(WizardForm);
CompLabel.Parent := WizardForm.SelectComponentsPage;
CompLabel.Left := WizardForm.ComponentsList.Left;
CompLabel.Width := WizardForm.ComponentsList.Width;
CompLabel.Height := ScaleY(32);
CompLabel.Top :=
WizardForm.ComponentsList.Top + WizardForm.ComponentsList.Height - CompLabel.Height;
CompLabel.AutoSize := False;
CompLabel.WordWrap := True;
WizardForm.ComponentsList.Height :=
WizardForm.ComponentsList.Height - CompLabel.Height - ScaleY(8);
end;
我设法通过添加一个布尔变量解决了这个问题。
StopCall
变量以false
开头,如果是false
,则执行代码,然后设置为true
.
因此下一次执行CurPageChanged
时,该值将是true
并且代码不会添加新的标题。
var StopCall: Boolean;
procedure CurPageChanged(CurPageID: Integer);
begin
if StopCall = false then
begin
if CurPageID = wpWelcome then
begin
SetTimer(0, 0, 50, CreateCallback(@HoverTimerProc));
CompLabel := TLabel.Create(WizardForm);
CompLabel.Parent := WizardForm.SelectComponentsPage;
CompLabel.Left := WizardForm.ComponentsList.Left;
CompLabel.Width := WizardForm.ComponentsList.Width;
CompLabel.Height := ScaleY(22);
CompLabel.Top := WizardForm.ComponentsList.Top + WizardForm.ComponentsList.Height - CompLabel.Height;
CompLabel.AutoSize := False;
CompLabel.WordWrap := True;
WizardForm.ComponentsList.Height := WizardForm.ComponentsList.Height - CompLabel.Height - ScaleY(8);
StopCall := true;
end;
end;
end;