
tlinklabel 控件要求 html 链接标签中的 href 属性必须使用双引号(")包裹 url,若误用单引号(')会导致链接不渲染、点击无响应,且 onlinkclick 事件不会触发。
tlinklabel 控件要求 html 链接标签中的 href 属性必须使用双引号(")包裹 url,若误用单引号(')会导致链接不渲染、点击无响应,且 onlinkclick 事件不会触发。
TLinkLabel 是 Delphi 提供的轻量级富文本链接控件,支持内联 HTML 格式的超链接(如 ...),但其解析器对 HTML 语法较为严格——仅识别标准双引号包围的属性值,不兼容单引号或无引号形式。
✅ 正确写法(双引号):
LinkLabel1.Caption := 'Click <a href="https://duckduckgo.com/">here</a> in order to open the search engine.';
❌ 错误写法(单引号,将导致纯文本显示、无交互):
LinkLabel1.Caption := 'Click <a href="" https:>here</a> in order to open the search engine.'; // 结果:整个字符串原样显示,无高亮、无下划线、点击无反应
此外,请确保以下前提条件已满足,否则即使语法正确仍可能失效:
-
LinkLabel1.Enabled := True;(默认为 True,但需确认未被设为 False) -
LinkLabel1.Visible := True; - 已为
OnLinkClick事件正确绑定处理函数(例如在 Object Inspector 中双击该事件,或代码中赋值LinkLabel1.OnLinkClick := LinkLabel1LinkClick;) - 控件已放置在可见的父容器中(如窗体或 Panel),且未被遮挡
? 小贴士:
-
TLinkLabel仅支持最简 HTML 子集,不支持 CSS、JavaScript 或嵌套标签; - 若需更复杂样式或多个可点击区域,建议改用
TRichEdit(配合EM_AUTOURLDETECT)或第三方组件; - 点击后默认不自动打开浏览器——需在
OnLinkClick事件中手动调用ShellExecute:uses ShellAPI;
procedure TForm1.LinkLabel1LinkClick(Sender: TObject; const Link: string; LinkType: TLinkType); begin ShellExecute(0, 'open', PChar(Link), nil, nil, SW_SHOWNORMAL); end;
遵循双引号规范并验证事件绑定与控件状态,即可让 `TLinkLabel` 正常渲染链接并响应用户操作。










