Если флаг Generate Event Support code включен, то Delphi автоматически добавляет в библиотеку типов сервера интерфейс IXXXEvents, где XXX — имя Automation объекта.
В этот интерфейс необходимо добавить методы, которые должен реализовать обработчик событий вашего сервера.
Создадим интерфейс обработчика событий с методом TestEvent и метод FireEvent интерфейса IAutoTest.
В сгенерированном файле с реализацией сервера добавим код для вызова обработчика события в метод FilreEvent
procedure TAutoTest.FireEvent; begin if FEvents <> NIL then FEvents.TestEvent; end;Здесь FEvents — автоматически добавленный Delphi в код сервера интерфейс IAutoTestEvents.
Компилируем и регистрируем сервер аналогично любому другому COM-серверу. Теперь его можно использовать из любого Automation-клиента, например из скрипта на Web-странице:
<HTML> <HEAD> <TITLE>Test Page</TITLE> </HEAD> <BODY LANGUAGE = VBScript ONLOAD = "Page_Initialize"> <CENTER> <OBJECT CLASSID="clsid:344E2D50-7B91-11D4-84DD-97E4E55E3E05" ID=Ctrl1> </OBJECT> <INPUT TYPE = TEXT NAME = Textbox SIZE=20> </CENTER> <SCRIPT LANGUAGE = VBScript> Sub Page_Initialize Ctrl1.FireEvent End Sub Sub Ctrl1_TestEvent MsgBox("Event Fired") Textbox.Value = "Hi !" End Sub </SCRIPT> </BODY> </HTML>Здесь в качестве Clsid элемента OBJECT необходимо указать содержание константы CLASS_AutoTest из файла Project1_TLB, сгенерированного Delphi. Загрузив эту страницу в Internet Explorer, вы получите сообщение при загрузке страницы.
![]() |
![]() |