我在 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和编码不太熟悉,因此我无法找到解决方案。任何帮助将不胜感激。
我认为,该按钮属于向导页面,而不是底部面板。
无论如何,如果你坚持这种方法,请使用:
procedure CurPageChanged(CurPageID: Integer);
begin
Button.Visible := (CurPageID = wpPassword);
end;
当然,你需要将
Button
变量设置为全局变量。而且你应该给它更具体的名称。