Delphi для профессионалов



 

Компонент TDCOMConnection


Компонент TDCOMConnection предоставляет транспорт на основе технологии Distributed COM и применяется в основном для организации транспорта в рамках локальной сети.

Для настройки соединения DCOM в первую очередь необходимо задать имя компьютера, на котором функционирует сервер приложений. Для компонента TDCOMConnection это должен быть зарегистрированный сервер Автоматизации. Имя компьютера задается свойством

property ComputerName: string;

Если оно задано правильно, в списке свойства

property ServerName: string;

в Инспекторе объектов можно выбрать один из доступных серверов. При выборе сервера также автоматически заполняется свойство

property ServerGUID: string;

Причем для успешного соединения клиента с сервером приложений оба свойства должны быть заданы в обязательном порядке. Только имя сервера или только его GUID не обеспечат правильный доступ к удаленному объекту СОМ.

Открытие и закрытие соединения осуществляется свойством

property Connected: Boolean;

или методами

procedure Open/procedure Close;

соответственно.

Для организации передачи данных между клиентом и сервером компонент TDCOMConnection предоставляет интерфейс IAppServer

property AppServer: Variant;

который также может быть получен методом

function GetServer: lAppServer; override;

Свойство

property ObjectBroker: TCustomObjectBroker;

позволяет использовать экземпляр компонента TsimpleObjectBroker для получения списка доступных серверов по время выполнения (см. ниже).

Методы-обработчики компонента TDCOMConnection представлены в табл. 20.1. 

Таблица 20.1. Методы-обработчики событий компонента TDCOMConnection

Объявление

Описание

property Af terConnect: TNotifyEvent;

Вызывается после установления соединения

property AfterDisconnect: TNotifyEvent;

Вызывается после разрыва соединения

property BeforeConnect: TNotifyEvent;

Вызывается перед установлением соединения

property BeforeDisconnect: TNotifyEvent;

Вызывается перед разрывом соединения

type TGetUsernameEvent = procedure ( Sender : TOb j ect ; var Username: string) of object;

property OnGetUsername : TGetUsernameEvent ;

Вызывается непосредственно перед появлением диалога удаленной авторизации пользователя. Для этого свойство LoginPrompt должно иметь значение True. Параметр Username может содержать имя пользователя по умолчанию, которое появится в диалоге

type TLoginEvent = procedure ( Sender: TOb j ect; Username, Password: string) of object;

property OnLogin: TLoginEvent;

Вызывается после открытия соединения, если свойство LoginPrompt имеет значение True. Параметры Username и Password содержат имя пользователя и пароль, введенные при авторизации