Как мне заставить TLabel вести себя как гиперссылка в Delphi?

Как мне заставить TLabel вести себя как гиперссылка в Delphi?

Примечание. Меня не интересует использование TLinkLabel из-за проблем с обратной совместимостью.

4 ответа

Решение

Раскрась его в синий, задай стиль, чтобы подчеркнуть, и добавь событие 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 вы используете? Глядя на мою Delphi 4 IDE, TLabel не имеет события OnMouseEnter/OnMouseLeave, которое было бы необходимо для изменения курсора на "Рука", когда пользователь наводит курсор мыши на "ссылку".

У него есть событие OnClick, которое вы можете подключить для запуска веб-браузера пользователя:

Как вывести фронтальный или запустить браузер в Delphi

Можно вкладывать и фокусировать ссылки в браузере. Поэтому я хотел бы рассмотреть возможность использования оконного элемента управления (например, нарисованного владельцем TButton) для этой задачи.

Другие вопросы по тегам