Собственные свойства и события

При создании ActiveX компонента Delphi генерирует два модуля: в одном будет содержаться реализация компонента (обработка событий, реализация собственных методов и т.д.) совершенно аналогично простому приложению, т.е. форма - модуль. Второй модуль имеет (по умолчанию) префикс _TLB; в нем определена реализация COM-интерфейсов компонента. Этот модуль тоже имеет соответствующую форму, в которой и определяются методы, свойства и события. Наиболее просто добавить свое свойство. На панели инструментов формы нажмите кнопку New Method. В определение компонента добавится пара методов. Для метода Get следует писать обработчик, если кто-то будет читать это свойство, для Set - если кто-то будет в него записывать. Тип свойства выбираем OleVariant. Нажимаем кнопку Refresh Implementation - и определение свойства появится в модуле реализации компонента (как пара методов, реакцию на которые вам нужно определить).
Добавление события немного сложнее. Например, создадим событие OnWantDir для компонента Findword . В форме _TLB выделяем строку IFindwordEvents и New method - набираем имя [OnWantDir] и затем Refresh Implementation. Все что описано далее относится к модулю реализации. В секции type пишем:
type
TWantDir = procedure(Sender:TObject) of object;
Tfindword = class(TActiveForm, Ifindword) {Это определение класса - генерируется автоматически (т.е. это уже было в коде, а все что написано дальше - секции private, published - относятся к этому классу)}
..........
private
{ Private declarations }
.........
FOnWantDir: TWantDir;
.........
published
.........
property onWantDir: TWantDir read FOnWantDir write FOnWantDir;
{Заготовка метода FOnWantDir уже вставлена в код автоматически}
.........
implementation
.........
procedure TFindword.WantDirEvent(Sender: TObject);
begin
if FEvents <> nil then FEvents.OnWantDir;
end;
.........
{И затем в нужном месте генерация события (ну например в методе-обработчике щелчка на кнопку):}
FEvents.OnWantDir;