AL-Shehab
AL-Shehab

Reputation: 47

How can I make a button or a text in Inno Setup that opens web page when clicked

How can I make a button or a text in the Inno Setup installer that opens a web page when clicked?

Link

Upvotes: 2

Views: 2194

Answers (1)

Martin Prikryl
Martin Prikryl

Reputation: 202138

To open a webpage, use:

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

See also How to show a hyperlink in Inno Setup?


To link this with a button, use:

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 := 'Link';
  Button.OnClick := @ButtonClick;
end;

To link this with a label, use:

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

procedure InitializeWizard();
var
  LinkLabel: TLabel;
begin
  LinkLabel := TLabel.Create(WizardForm);
  LinkLabel.Parent := WizardForm;
  LinkLabel.Left := ScaleX(16);
  LinkLabel.Top :=
    WizardForm.NextButton.Top + (WizardForm.NextButton.Height div 2) -
    (LinkLabel.Height div 2);
  LinkLabel.Caption := 'Link';
  LinkLabel.ParentFont := True;
  LinkLabel.Font.Style := LinkLabel.Font.Style + [fsUnderline];
  LinkLabel.Font.Color := clBlue;
  LinkLabel.Cursor := crHand;
  LinkLabel.OnClick := @LinkLabelClick;
end;

Upvotes: 4

Related Questions