我有一个带有自定义WelcomeLabel2消息的Inno Setup程序。
[Messages]
WelcomeLabel2=Lorem ipsum dolor sit amet CLICK_HERE consectetur adipiscing elit.
Run Code Online (Sandbox Code Playgroud)
我试图将CLICK_HERE设为网站的可点击链接。
我想知道的另一件事是如何使此CLICK_HERE文本变为粗体。
我怎样才能做到这一点?
Tks!
这并不容易。
要创建整体可点击的标签,可以使用如下代码:
procedure OpenBrowser(Url: string);
var
ErrorCode: Integer;
begin
ShellExec('open', Url, '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
procedure LinkClick(Sender: TObject);
begin
OpenBrowser('https://www.example.com/');
end;
procedure InitializeWizard;
var
Link: TLabel;
begin
Link := TLabel.Create(WizardForm);
Link.Left := ???;
Link.Top := ???;
Link.Parent := WizardForm.WelcomePage;
Link.Caption := 'CLICK_HERE';
Link.OnClick := @LinkClick;
Link.ParentFont := True;
Link.Font.Style := Link.Font.Style + [fsUnderline, fsBold];
Link.Font.Color := clBlue;
Link.Cursor := crHand;
end;
Run Code Online (Sandbox Code Playgroud)
另请参阅在安装过程中在Inno Setup中显示许可证协议链接。
尽管要创建一个标签,该标签的部分文本仅是可单击的,但要困难得多。如果文本适合一行,则可以通过将三个标签彼此相邻堆叠(首先是前导静态文本,然后是链接,然后是尾随静态文本)来实现。但是,如果文本不能排成一行,则这是不可能的,因为标签会相互重叠。
另外,您可以使用链接创建一个RTF文档,并使用只读形式显示该文档TRichEditViewer:
procedure InitializeWizard;
var
RichViewer: TRichEditViewer;
begin
RichViewer := TRichEditViewer.Create(WizardForm);
RichViewer.Left := WizardForm.WelcomeLabel2.Left;
RichViewer.Top := WizardForm.WelcomeLabel2.Top;
RichViewer.Width := WizardForm.WelcomeLabel2.Width;
RichViewer.Height := WizardForm.WelcomeLabel2.Height;
RichViewer.Parent := WizardForm.WelcomeLabel2.Parent;
RichViewer.BorderStyle := bsNone;
RichViewer.TabStop := False;
RichViewer.ReadOnly := True;
WizardForm.WelcomeLabel2.Visible := False;
RichViewer.RTFText :=
'{\rtf1 Lorem ipsum dolor sit amet ' +
'{\b {\field{\*\fldinst{HYPERLINK "https://www.example.com/" }}' +
'{\fldrslt{CLICK_HERE}}}} ' +
'consectetur adipiscing elit.}';
end;
Run Code Online (Sandbox Code Playgroud)
要更改链接颜色,请参见Inno Setup-如何更改RTF文本中超链接的颜色?
| 归档时间: |
|
| 查看次数: |
1581 次 |
| 最近记录: |