如何限制标签链接代码仅限密码向导

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

我在 InnoSetup 中为我的项目使用以下代码。

[Code]
<event('InitializeWizard')>
procedure InitializeWizardRevealPassword();
begin
  WizardForm.PasswordEdit.Password := False;
end;

procedure OpenBrowser(Url: string);
var
  ErrorCode: Integer;
begin
  ShellExec('open', Url, '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;

procedure ButtonClick(Sender: TObject);
begin
  OpenBrowser('https://www.example.com/');
end;

procedure InitializeWizard();
var
  Button: TButton;
begin
  Button := TButton.Create(WizardForm);
  Button.Parent := WizardForm;
  Button.Left := ScaleX(16);
  Button.Top := WizardForm.NextButton.Top;
  Button.Width := WizardForm.NextButton.Width;
  Button.Height := WizardForm.NextButton.Height;
  Button.Caption := 'Click here for Password';
  Button.OnClick := @ButtonClick;
end;

到目前为止,上面的代码一切看起来都很棒,但唯一的问题是标签链接显示了向导的每个屏幕。我希望它只显示密码向导页面。

我对pascal和编码不太熟悉,因此我无法找到解决方案。任何帮助将不胜感激。

按钮应仅显示在此页面中:

按钮不应显示在以下页面上:

inno-setup pascal
1个回答
0
投票

我认为,该按钮属于向导页面,而不是底部面板。

无论如何,如果你坚持这种方法,请使用:

procedure CurPageChanged(CurPageID: Integer);
begin
  Button.Visible := (CurPageID = wpPassword);
end;

当然,你需要将

Button
变量设置为全局变量。而且你应该给它更具体的名称。

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