【问题标题】:How do I make a TLabel behave like a hyperlink in Delphi?如何使 TLabel 表现得像 Delphi 中的超链接?
【发布时间】:2010-11-22 12:35:13
【问题描述】:

如何使 TLabel 在 Delphi 中表现得像超链接?

注意:由于向后兼容性问题,我对使用 TLinkLabel 不感兴趣。

【问题讨论】:

    标签: delphi hyperlink tlabel


    【解决方案1】:

    将其涂成蓝色,将样式设置为下划线并添加 OnClick 事件!

    procedure TForm1.Label1Click(Sender: TObject);
    var
      MyLink: string;
    begin
      MyLink := 'http://www.mysite.com/';
      ShellExecute(Application.Handle, PChar('open'), PChar(MyLink),    
       nil, nil, SW_SHOW);
    end;
    

    【讨论】:

    • 是的,这就是我要找的。我会在一两天内接受它,以确保没有其他人有任何其他想法。干杯。
    • 别忘了加上“uses ShellApi;”
    【解决方案2】:

    这取决于您对超链接的要求。我只是...

    • 将字体颜色设置为蓝色
    • 使用 OnMouse[Enter|Leave|Move] 事件适当地将下划线样式应用于字体
    • 使用 OnClick 事件生成浏览器并根据需要更改字体颜色。

    【讨论】:

    • OnMouseEnter 和 OnMouseLeave 在 D7 及更早版本中不可用(不确定 D2005),因此关于 TLinkLabel 的评论也排除了这一点。您将不得不使用 OnMouseMove
    • 我刚刚检查过 - Delphi 7 绝对有 OnMouseEnter 和 OnMouseLeave :}
    • @Gerry:是的,他们是;你只需要再努力一点。 您只需为 CM_MOUSEENTER 和 CM_MOUSELEAVE 消息添加处理程序。
    【解决方案3】:

    您使用的是什么版本的 Delphi?查看我的 Delphi 4 IDE,TLabel 没有 OnMouseEnter/OnMouseLeave 事件,当用户将鼠标悬停在“链接”上时,需要将光标更改为“手”。

    它确实有 OnClick 事件,您可以连接它来启动用户的网络浏览器:

    How to bring front or launch browser in Delphi

    【讨论】:

    • Delphi 2009。也许鼠标悬停是错误的术语。在 TLabel 的属性中,在 D2009 中,您可以指定该标签应使用哪个光标。
    【解决方案4】:

    您可以在浏览器中使用选项卡将焦点放在链接上。因此,我会考虑为此任务使用窗口控件(如所有者绘制的 TButton)。

    【讨论】:

      猜你喜欢
      • 2012-01-15
      • 2016-12-17
      • 2012-02-14
      • 2015-06-04
      • 2016-05-29
      • 2020-03-23
      • 2010-09-10
      • 2013-04-14
      相关资源
      最近更新 更多