自定义TLabel在Inno设置中未显示在FinishedPage上

问题描述 投票:1回答:1

我必须在这里遗漏一些明显的东西。我正在尝试向wpFinished上的发行说明添加链接,但似乎无法使其显示出来:

我有一个文件finishedPage.iss,我通过#include "InnoDialogs\finishedPage.iss";包含了该文件该文件具有以下内容:

[Run]
Filename: "{app}\bin\{#MyAppExeName}"; \
    Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; \
    Flags: nowait postinstall skipifsilen

[Code]
{ procedures to deal with page interaction }
procedure ReleaseNotesClick(Sender: TObject);
var
    errorCode: Integer;
begin
    ShellExec('','https://myUrl.com/Release_Notes', '', '', SW_SHOW, ewNoWait, errorCode)
end;

{ build the page }
procedure FinishedPage_Create;
var
    ReleaseNotesLink: TLabel;

begin

    ReleaseNotesLink := TLabel.Create(WizardForm);
    ReleaseNotesLink.Parent := WizardForm.FinishedPage;
    ReleaseNotesLink.Caption := 'Read the Releasenotes';
    ReleaseNotesLink.Enabled := True;
    ReleaseNotesLink.Visible := True;
    ReleaseNotesLink.AutoSize := True;
    ReleaseNotesLink.Left := WizardForm.FinishedLabel.Left;
    ReleaseNotesLink.Top := WizardForm.FinishedLabel.Top + ScaleY(100);
    ReleaseNotesLink.OnClick := @ReleaseNotesClick;
    ReleaseNotesLink.ParentFont := True;
    ReleaseNotesLink.Font.Style := ReleaseNotesLink.Font.Style + [fsUnderline, fsBold];
    ReleaseNotesLink.Font.Color := clBlue;
    ReleaseNotesLink.Cursor := crHand;

end;

在主安装程序文件的CurPageChanged过程中,我具有:

procedure CurPageChanged(CurPageID: Integer);
begin
    if CurPageID = wpFinished then
        begin
            FinishedPage_Create();
        end;
end;

这样编译就可以了,但是我无法显示出来。我也尝试过不同的位置,以为它可能只是被其他东西吸引了。我正在使用相同的步骤将元素添加到其他页面...

任何想法我想念的是什么?

installer inno-setup pascalscript
1个回答
0
投票

您的标签隐藏在RunList的后面,它占据了页面的其余部分。

您必须缩小列表。例如:

WizardForm.RunList.Height := ScaleY(24);

ReleaseNotesLink.Left := WizardForm.RunList.Left;
ReleaseNotesLink.Top := WizardForm.RunList.Top + WizardForm.RunList.Height + ScaleY(8);

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.