2009-07-22 7 views
2

J'ai créé un lib qui contient la classe DateRange dans C#. J'ai créé .dll et .tlb pour cette lib et enregistré le fichier .tlb. Toutes les étapes nécessaires ont été faites. En Delphi, j'ai utilisé l'option de bibliothèque de type import pour produire une unité qui contient les informations de toutes les classes que j'ai créées dans C#.Comment accéder au membre d'une classe (créé en C#) dans dephi

Problème: Je ne sais pas comment utiliser le membre de la classe DateRange. Aidez-moi, s'il vous plaît.

Code I utilisé dans Delphi est ...

program COMTesting; 

{$APPTYPE CONSOLE} 

uses 
    SysUtils, 
    ComObj, 
    MCenterComService_TLB in 'MCenterComService_TLB.pas'; 

var dr:DateRange; 

begin 
    dr:= createComObject(CLASS_DateRange) as DateRange; 
    dr.fromdate:= date('4/16/2009'); 
    dr.todate:= date('4/16/2009'); 
end. 

système dit: [Erreur DCC] COMTesting.dpr (18): E2003 identificateur undeclared: 'fromdate'

Répondre

3

Présence non déclarée identifiant signifie que l'interface DateRange n'a pas de propriété appelée fromdate. Regardez la déclaration DateRange dans l'unité MCenterComService_TLB.pas générée. Vous y trouverez probablement les méthodes Get_fromdate, Set_fromdate ou similaire. Il est possible que l'importateur de bibliothèques de types ne génère pas de déclarations de propriétés sur les interfaces. Vous pouvez toujours utiliser les méthodes getter/setter, cependant.

Vous pouvez également ajouter manuellement les déclarations de propriété.

+0

Je suis sûr que fromdate, la propriété todate a été déclarée class de la classe de données dans C# – Partha

+0

Comme je l'ai dit, les déclarations de propriétés peuvent avoir été perdues lors de l'importation de la bibliothèque de types. Jetez un oeil dans l'unité générée. –

+0

oh mon dieu, je pense .. je ne peux pas résoudre ceci. parce que je ne suis pas expert en delphi – Partha

Questions connexes