Как создать экземпляр COM-объекта с помощью взаимодействия в Delphi Prism - PullRequest
0 голосов
/ 17 ноября 2009

Какой правильный синтаксис для создания экземпляра COM-объекта в Delphi Prism с помощью COM-взаимодействия - new, похоже, не справляется с работой.

Я добавил его как ссылку на проект веб-сайта. Вот соответствующий код:

method _Default.Button1_Click(sender: System.Object; e: System.EventArgs);
var
   FModel: MarketBuilderLib.MarketBuilderModel;
begin
  FModel := New MarketBuilderLib.MarketBuilderModel;
end;

Не компилируется с сообщением:

Error 1 
(PE190) "MarketBuilderLib.MarketBuilderModel" is an interface and cannot be 
instantiated

Я понимаю сообщение, но не знаю, как это сделать. Большое спасибо за любую помощь.

1 Ответ

4 голосов
/ 17 ноября 2009

Вы можете попытаться создать экземпляр вашего COM-объекта с помощью метода CreateInstance в System. Activator class. Эквивалентный код может выглядеть следующим образом:

var
  FModel: MarketBuilderLib.MarketBuilderModel;
begin
  FModel := (MarketBuilderLib.MarketBuilderModel)Activator.CreateInstance(GetTypeFromProgID("{PROG ID}"));
end;

Обратите внимание, что вам необходимо получить тип из GetTypeFromProgID с использованием идентификатора программы, в противном случае вы создадите InvalidComObjectException .

...