Создадим ещё один компонент программиста «Гиперссылка», который будем называть GiperLink. В качестве родительского класса выберем компонент StaticText.
Чтобы компонент программиста «Гиперссылка», мог реагировать на движение указателя мыши, он должен обрабатывать события OnMouseEnter и OnMouseLeave. Но у родительского компонента StaticText этих событий нет по этому нам придётся их создать.
Как Вы наверное уже знаете все события нового компонента будут отображены в ИНСПЕКТОРЕ ОБЪЕКТОВ, и программист, помещающий компонент GiperLink в своё приложение, сможет написать для них собственные обработчики процедур. Для того чтобы совместить действия , стандартно предусмотренные для компонента, с возможностью зарегистрировать наши мы с этой целью будем обрабатывать системные сообщения такие как CM_MOUSEENTER и CM_MOUSELEAVE. При поступлении сообщения CM_MOUSEENTER (указатель мыши расположился над компонентом) сначала подчеркнёт текст и изменит форму указателя, а потом проверит не зарегистрирован ли пользовательский обработчик события OnMouseEnter , и если да, вызовем его. В данном случае события компонента программиста «Гиперссылка», реализуются как его свойства.

В отличие от обычных свойств, методы чтения и записи свойства- события служат для доступа к приватному атрибуту, чтобы пользователь данного компонента программиста «Гиперссылка» мог зарегистрировать для события собственный обработчик, сопоставив его методу чтения.
С одной стороны это событие есть ссылка на обработчик события, поэтому свойство – событие должно иметь тип указателя на метод TNotifyEvent.
Для хранения пути или интернет – адреса документа , на которы ведёт ссылка, создадим ещё одно свойство компонента программиста «Гиперссылка» GiperLink: FLink строкового типа. Открытие документа в новом приложении реализует функция Windows API ShellExecute, объявленная в модуле ShellAPI. В секция Uses должна иметь модули Windows, Messages(системные сообщения) и Graphics(цвет шрифта константа clBlue).

Модуль компонета программиста «Гиперссылка» GiperLink.

Модуль компонета программиста    «Гиперссылка» GiperLink.

Модуль компонета программиста    «Гиперссылка» GiperLink.

Для открытия файла по ссылке, мы воспользовались функцией ShellExecute. Эта функция распознаёт типы файлов, зарегистрированные в Windows, и открывает файл в подходящем для него приложении (в нашем случае браузер), запуская его в новом окне. Если вместо имени файла функции передать интернет-адрес, то в качестве приложения по умолчанию будет запущен браузер.

Аргументы Функции выглядят так:

ShellExecute(hWnd:HWND; // дискрептор окна вызывающего приложения
Operation: PAnsiChar; // ‘open’ (открыть) или ‘print ‘ (распечатать)
FileName: PAnsiChar; // имя файла
Parameters: PAnsiChar; //аргументы командной строки приложения
Directory: PAnsiChar; // текущий каталог приложения
ShowCmd:Integer // режим открытия нового окна );

Для открытия окна передаём константу SW_SHOWNORMAL. Этот режим отображает окно в его последнем размере и положение на экране и активирует его. Другие возможные значения аргумента ShowCmd – SW_SHOWMAXIMIXIZED (открыть окно развёрнутым во весь экран) и SW_SHOWMINIMIXIZED (открыть окно свёрнутым в кнопку).

Файл ресурсов компонента программиста «Гиперссылка» создаём с помощью улиты Image Editor . Далее устанавливаем компонент программиста в палитру компонентов на вкладку New(см. рис.).

Файл ресурсов компонента программиста «Гиперссылка»

 

Тестирование компонента программиста «Гиперссылка».

Создаём новое приложение и размещаем компонент программиста GiperLink на форме и устанавливаем следующие свойства:
Caption – DelphiNew.Ru
Link – http://www.delphinew.ru
Запускаем приложение и при нажатие на ссылку открывается баузер.

Тестирование компонента программиста «Гиперссылка»

Скачать компонент программиста « «Гиперссылка»  

Добавить комментарий


Защитный код
Обновить