Методика создания клиента в Delphi

а) Для взаимодействия с СОМ-сервером целесообразно создать:
• Проект, например, с именем ComTest.Dpr.
• Блок с описанием интерфейса. Он может быть полностью аналогичен файлу, созданному при проектировании сервера и просто скопирован.
• Блок с экранной формой, например, с именем ComForm. В этом блоке следует подключить блок с интерфейсом IntfCom и включить константу с GUID класса Class_Sum:

Unit ComForm;
Uses.., ComObj, IntfCom; Const
Class_Sum:TGUID='{EODBF9F4-2C63-HD6-8E8F-00608C93D419}’;

б) В блоке с экранной формой следует описать переменную интерфейсного типа, например, в разделе Private класса TForm1.

Private
pSum: ISum; // Указатель (ссылка) на интерфейс

в) Для создания объекта и запроса на услуги объекта (вызова методов) можно включить следующую строку кода:

Procedure TForm1.ButtonlCIick(Sender: TObject);
Var I: Integer;
Begin
pSum:=CreateComObject(Class_Sum) As ISum;// Получаем ссылку

д) Особенность работы с сервером с несколькими объектами. Отличия в реализации клиента заключаются в том, что в блок с экранной формой СоmForm необходимо включить:
• в объявление класса формы — переменные-ссылки на каждый дополни
тельный интерфейс, аналогично pSum.
• типизированные константы, аналогичные Class_Sum.
• реализации процедур вызова всех дополнительных объектов, аналогичные TForm1.ButtonlClick.

е) Особенность работы с объектом, реализующим несколько интерфейсов. В блок с экранной формой ComFonn необходимо включить:
• в объявление класса формы — переменные-ссылки на каждый дополни
тельный интерфейс, аналогично pSum.
• реализации процедур вызова всех дополнительных объектов, в которых, однако, получение ссылки (назовем ее pFac) на необходимый интерфейс (назовем его IFac) должно выглядеть примерно следующим образом:

pSum:=CreateComObject(Class_Sum) As ISum;
pSum.QueryInterface(IFac, pFac);

Или, после получения указателя pSum на интерфейс ISum:

pFac:=pSum As IFac;

Далее можно вызывать методы интерфейса IFac.


Оставить комментарий





Статистика

Рейтинг@Mail.ru