Как мне заставить TLabel вести себя как гиперссылка в Delphi? - PullRequest
6 голосов
/ 25 августа 2009

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

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

Ответы [ 4 ]

21 голосов
/ 25 августа 2009

Раскрасьте его в синий, установите стиль для подчеркивания и добавьте событие 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;
7 голосов
/ 25 августа 2009

Это зависит от того, что вам требуется от ваших гиперссылок. Я бы просто ...

  • установить цвет шрифта на синий
  • используйте события OnMouse [Enter | Leave | Move], чтобы соответствующим образом применить стиль подчеркивания к шрифту
  • используйте событие OnClick для запуска браузера и изменения цвета шрифта по желанию.
1 голос
/ 25 августа 2009

Какую версию Delphi вы используете? Глядя на мою Delphi 4 IDE, у TLabel нет события OnMouseEnter / OnMouseLeave, которое было бы необходимо для изменения курсора на «Рука», когда пользователь наводит курсор на «ссылку».

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

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

0 голосов
/ 25 августа 2009

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

...