Компонент 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 содержат имя пользователя и пароль, введенные при авторизации |