AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

COM-Object & CoClass

Ein Thema von conti · begonnen am 13. Dez 2006 · letzter Beitrag vom 13. Dez 2006
Antwort Antwort
conti

Registriert seit: 10. Nov 2006
19 Beiträge
 
#1

COM-Object & CoClass

  Alt 13. Dez 2006, 15:48
Die Registerkarte für eine TLB-Datei enthält eine Hilfsklasse (CoClass) die 5 Schnittstellen implementiert. Davon ist nur eine die Default-Schnittstelle.
Wenn ich die TLB-Datei als Komponente importiere, generiert Delphi Code nur für die Default-Schnittstelle.
Wie könnte man auch die anderen Schnittstellen verwenden? Ist es überhaupt möglich?
Bin ich komisch oder Delphi ?
  Mit Zitat antworten Zitat
shmia

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

Re: COM-Object & CoClass

  Alt 13. Dez 2006, 16:13
Du brauchstt einen Komponentenwrapper für eine CoClass nur dann, wenn du Events empfangen möchtest.
Ansonsten arbeitet man besser ohne kapselnde Komponente und erzeugt das Interface selbst.
Man kann in beiden Fällen aber alle (nichtausgehenden) Interfaces benützen:
Delphi-Quellcode:
var
  x : IZweitesInterface;
begin
  x := Wrapperkomponente.DefaultInterface as IZweitesInterface;
  x.Methode42;
Andreas
  Mit Zitat antworten Zitat
conti

Registriert seit: 10. Nov 2006
19 Beiträge
 
#3

Re: COM-Object & CoClass

  Alt 13. Dez 2006, 16:59
Ich arbeite mit Events und habe folgendes versucht:

Delphi-Quellcode:
 z: IErstesInterface;
 x: IZweitesInterface;
 ...
 
 z := CoSK_API.Create;
 x := z as IZeitesInterface;
 x.Methode_Schicke_Rückmeldung;
Die Funktion wird aufgerufen, aber ich erhalte keine Rückmeldung.
Die Rückmeldung sollte über einen Event: OnNotify kommen (der mit ein Object von Typ TSK_API aufgerufen wird)

Ich bin sicher, dass es daran liegt, dass ich die IZweitesInterface nicht richtig einbinden konnte.
Weiss jemand vielleicht eine andere Lösung
Danke
  Mit Zitat antworten Zitat
shmia

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

Re: COM-Object & CoClass

  Alt 13. Dez 2006, 17:09
Zitat von conti:
Genau, ich möchte Events empfangen. Den COM-Object (und die TLB-Datei) habe ich nicht selbst erstellt ... ich möchte sie nur benutzen.
Z.B. wenn mein Hilfsklasse CoSK_API heisst, dann erzeugt Delphi die Klasse TSK_API. Das meinst du mit Komponent Wrapper?
Richtig, die Klasse TSK_API ist der Komponenten Wrapper. (Wrapper Class= umhüllende Klasse)
Zitat von conti:
Delphi-Quellcode:
 w: TSK_API;
 x: IZweitesInterface;
 ...
 x := w.DefaultInterface as IZweitesInterface;
 x.Methode;
bekomme den Fehler: Zugriffsverletzung bei Adresse ...
So müsste es gehen:
Delphi-Quellcode:
// Annahme die Komponente SK_API1 vom Typ TSK_API liegt auf dem Formular
var
  x: IZweitesInterface;
begin
  Assert(Assigned(SK_API1)); // sicherstellen, dass die Komponente vorhanden ist
  SK_API1.Connect; // wird müssen verbunden sein
  x := SK_API1.DefaultInterface as IZweitesInterface;
  x.Methode;
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz