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

如何使TLabel在Delphi中表现为超链接?,delphi,hyperlink,tlabel,Delphi,Hyperlink,Tlabel,如何使TLabel在Delphi中表现为超链接 注意:由于向后兼容性问题,我对使用TLinkLabel不感兴趣。将其涂成蓝色,将样式设置为下划线,并添加OnClick事件 procedure TForm1.Label1Click(Sender: TObject); var MyLink: string; begin MyLink := 'http://www.mysite.com/'; ShellExecute(Application.Handle, PChar('open'), P

如何使TLabel在Delphi中表现为超链接


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

将其涂成蓝色,将样式设置为下划线,并添加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;

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

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

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

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


可以在浏览器中对链接进行制表和聚焦。因此,我将考虑使用窗口控件(如所有者绘制的TButt)来完成这个任务。

Delphi 2009。也许“鼠标悬停”这个词用错了。在D2009中的TLabel属性中,您可以指定该标签应使用哪个光标。是的,这就是我要找的。我会在一两天内接受它,以确保没有其他人有任何其他想法。干杯。别忘了添加“uses ShellApi;”OnMouseCenter和OnMouseLeave在D7和更早版本(不确定D2005)中不可用,因此关于TLinkLabel的评论也排除了这一点。您必须使用OnMouseMoveI刚才检查过的-delphi7最肯定有OnMouseEnter和onmouseeve:}@Gerry:是的,它们是;你只要再努力一点就行了。您只需为CM_MOUSEENTER和CM_MOUSELEAVE消息添加处理程序。