2009-11-17 9 views
0

Quelle est la syntaxe correcte pour instancier un objet COM dans Delphi Prism à l'aide de COM interop - new ne semble pas faire le travail.Comment instancier un objet COM en utilisant interop dans Delphi Prism

Je l'ai ajouté comme référence au projet de site Web. Voici le code correspondant:

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

ne réussit pas à compiler avec le message:

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

Je comprends le message, mais ne savez pas comment le faire. Un grand merci pour toute aide.

Répondre

4

Vous pouvez tenter d'instancier votre objet COM en utilisant la méthode CreateInstance dans le système. Activator classe. Le code équivalent pourrait ressembler à ceci:

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

Notez que vous aurez besoin d'obtenir le type de GetTypeFromProgID en utilisant l'identificateur de programme sinon vous allez générer un InvalidComObjectException.