如何在 Lazarus 中制作 link 按钮?

How to make link button in Lazarus?

我想制作一个 hyperlink 按钮。如果按钮已单击,默认浏览器将打开 link。我用 Delphi 版本试过了,但它在 Lazarus 中不起作用。这是我试过的代码。我如何在 Lazarus 版本中制作它?

Uses ShellApi

begin
ShellExecute (0, 'Open', 'link website', '', '', SW_SHOWNORMAL);
end;

ShellExecute 是我从未真正使用过的东西,因为我总是试图让我的程序跨平台。我总是改用 TProcess 或 RunCommand。下面的 link 有完整的文档,非常好。

http://wiki.freepascal.org/Executing_External_Programs

如果您真的想使用 ShellExecute,那么我注意到在 link 中它确实说明了有关初始化 COM 的以下内容:

ShellExecute 是一个标准的 MS Windows 函数 (ShellApi.h),在 MSDN 上有很好的文档(如果您发现该函数不可靠,请注意他们关于初始化 COM 的评论)。

希望对您有所帮助。如果没有,我会尽力帮助您。

打开link最简单的跨平台兼容方式是由OpenURL函数提供的。它在 LCLIntf 单元中可用,与 Lazarus 捆绑在一起。

示例:

procedure OnClick;
var
  found: boolean;
begin
  found := OpenURL('http://nowhere.loopback.edu');
end;