
delphi 的 tlinklabel 组件仅支持双引号包裹的 href 属性值,若使用单引号会导致 html 解析失败——链接不渲染、点击无响应、事件不触发。正确写法必须使用英文双引号(")而非单引号(')。
delphi 的 tlinklabel 组件仅支持双引号包裹的 href 属性值,若使用单引号会导致 html 解析失败——链接不渲染、点击无响应、事件不触发。正确写法必须使用英文双引号(")而非单引号(')。
TLinkLabel 是 Delphi 提供的轻量级富文本链接控件,支持内嵌 <a></a> 标签实现可点击超链接。但其 HTML 解析器非常严格:仅识别标准双引号(")作为属性定界符,完全忽略单引号(')。当您编写如下代码时:
LinkLabel1.Caption := 'Click <a href=''https://duckduckgo.com/''>here</a> in order to open the search engine.';
组件会将整个字符串当作纯文本处理,既不高亮 here,也不注册链接区域,自然不会触发 OnLinkClick 事件(如 LinkLabel1LinkClick)。
✅ 正确写法(必须使用英文双引号):
LinkLabel1.Caption := 'Click <a href="https://duckduckgo.com/">here</a> in order to open the search engine.';
⚠️ 注意事项:
- 双引号需为 ASCII 标准引号(U+0022),避免中英文输入法混用导致的全角引号;
-
TLinkLabel仅支持基础<a></a>标签,不支持target、style等扩展属性; - 确保已为
OnLinkClick事件正确分配处理方法(如LinkLabel1.OnLinkClick := LinkLabel1LinkClick;); - 若需打开外部 URL,应在事件处理中显式调用
ShellExecute:
procedure TForm1.LinkLabel1LinkClick(Sender: TObject; const Link: string;
LinkType: TLinkType);
begin
if LinkType = ltURL then
ShellExecute(0, 'open', PChar(Link), nil, nil, SW_SHOWNORMAL);
end;总结:TLinkLabel 不是完整 HTML 渲染器,而是基于简易标签解析的专用控件。遵循双引号规范是启用链接功能的前提,也是调试此类“无反应”问题的第一检查项。

















