Пользовательский TLabel не отображается на FinishedPage в Inno Setup - PullRequest
1 голос
/ 12 марта 2020

Я, должно быть, здесь упускаю что-то очевидное. Я пытаюсь добавить ссылку на заметки о выпуске на 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;

Это компилируется просто отлично, но я не могу заставить его отображаться , Я также пробовал разные позиции, думая, что, может быть, это просто связано с чем-то другим. Я использую ту же процедуру для добавления элементов на другие страницы ...

Есть идеи, что мне не хватает?

1 Ответ

0 голосов
/ 13 марта 2020

Ваш ярлык скрыт за 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

...