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