Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Zurück geliefertes Objekt "halten"

  Alt 2. Mär 2006, 12:40
Zitat von LaNtHaN:
Der erste Teil hat funktioniert. Im Moment stellt sich mir nur noch die Frage zu folgendem Teil.
Zitat von LaNtHaN:
Weitere Frage die aufgetaucht ist:

Die CoClass Tag ist kein direkt erzeugbares Objekt.
Wie greife ich auf solch eine CoClass zu?
Nicht DU erzeugst das Objekt, sondern du holst dir ein IDispatch-Interface ab, mit dem du arbeiten darfst.
Also musst du in der TLB-Datei nachschauen, welche Methoden und Properties vom Interface ITag implementiert werden. Dann gibt es 2 Möglichkeiten:

Delphi-Quellcode:
// über Dispatch-Schnittstelle arbeiten (einfach, aber etwas langsam)
begin
  Fdxstest.IrgendEineMethode;
  Fdxstest.EineZweiteMethode(1000);
end;

// mit früher Bindung arbeiten (schnellerer Code, etwas aufwendiger)
var
   atag : ITag;
begin
   // Dispatch-Iterface aus Fdxstest lesen und in das passende Interface umwandeln
   atag := IDispatch(Fdxstest) as ITag;
   
   // ab hier funktioniert dann auch die Syntax-Prüfung von Delphi
   atag.IrgendEineMethode;
   atag.EineZweiteMethode(1000);
   
   // die Interface-Variable atag wird von Delphi automatisch entsorgt
   // man braucht nichts tun
end;
Andreas
  Mit Zitat antworten Zitat