Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi COM - Eventsinks - Late Binding möglich? (https://www.delphipraxis.net/89403-com-eventsinks-late-binding-moeglich.html)

Shivan 30. Mär 2007 14:45


COM - Eventsinks - Late Binding möglich?
 
Ist es in Delphi überhaupt möglich, mittels Late Binding Eventsinks zu verwenden?

Die einzige Möglichkeit über Late Binding die ich derzeit sehe, ist eine Ableitung von TOleServer und dort mindestens die Routine InvokeEvent zu überschreiben und die Events abzuhandeln. (also so halbwegs die von Delphi generierte Klasse nachzubilden - ActiveX Import)

Mit Early-Binding ist es klar, da gibt es ja einfach die generierten Properties (ActiveX Import) von Delphi...
Dabei hat man dann jedoch die Abhängikeit von der TLB.

Danke schonmal im Vorraus.

hoika 30. Mär 2007 16:02

Re: COM - Eventsinks - Late Binding möglich?
 
Hallo,

im Netz gibt es direkt Eventsink.
Damit wird um die Events beim Import der TLB
eine Delphi-lesbare Struktur gebaut.

Die kann man dann über normale Delphi-Events (OnBla (Sender ...)
abfragen.
Ich benutze das für Crystal Reports, allerdings early binding.

Aber es sollte auch Late gehen.


Heiko

Shivan 1. Apr 2007 09:33

Re: COM - Eventsinks - Late Binding möglich?
 
Zitat:

Zitat von hoika
im Netz gibt es direkt Eventsink.
Damit wird um die Events beim Import der TLB
eine Delphi-lesbare Struktur gebaut.

Die kann man dann über normale Delphi-Events (OnBla (Sender ...)
abfragen.

Ja, das kenne ich... über Delphi direkt den Import oder dann bspw. über EventSinkImp.

Zitat:

Zitat von hoika
Aber es sollte auch Late gehen.

Yo, nur hab ich bisher noch nirgends ein schönes Beispiel dafür gefunden, wie das gehen soll. Weil in Delphi wird dann ja über das InvokeEvent und über die Id dann ermittelt, welches Event das ist... aber dazu muss der TOleServer mit dem OLE-Server verbunden sein.

Ich werds jetzt wohl doch mal über EventSinkImp versuchen und dann die spezifischen Klassen durch IDispatch ersetzen... somit bin ich zur TLB unabhängig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:43 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