Announcement

Collapse
No announcement yet.

Events dynamisch in Delphi einbinden ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Events dynamisch in Delphi einbinden ?

    Hallo zusammen,

    gibt es eine Möglichkeit die Events eines Automatisierungsobjektes dynamisch in Delphi einzubinden ?

    In unserem Fall sind die Com-Server eine Art PlugIn, welche jedoch die gleichen Methoden und Events haben. Den Server erzeugen wir in Delphi mittels CreateOleObject. Diese "PlugIns" sollen austauschbar sein (Bsp. Nutzung von verschiedenen DB-Anbindungen wie z.B. MYSQL.Database oder MSSQL.Database, wobei beide Server die gleichen Methoden und Events bereitstellen).

    Ein Versuch, das ganze über Typecasting (CreateOleObject('MSSQL.Database') as IMYSQL_Database) funktioniert nicht, da hier die strikte Typenprüfung von Delphi greift und diese erkennt nunmal das das nicht die gleichen ID's sind.

    Gruß
    Boris

  • #2
    Hallo!
    Hast Du mal versucht den Objekten eine gemeinsame Basis-Schnittstelle zu geben?
    Dann geht CreateOleObject('MSSQL.Database') as IMyBase_Database eigentlich.
    BYE BERN

    Comment


    • #3
      Hallo Bernd,

      klingt gut ! Hast Du mal nen Tip wie das geht ? Bin mit Interfaces noch nicht so fit ! Ist das ähnlich wie in Delphi-Komponenten (z.B. TCustomComponent ans Basis, dann Ableiten) ? Wie geht das bei Interfaces

      Comment


      • #4
        Erstmal ein Basisobjekt anlegen mit der gesamten Schnittstellenstruktur. Wenn Du dann die "echten" Objekte anlegst kannst Du in Typbibliothek ein fach die übergerodnete Schnittstelle auf die Basisschnittstelle setzen.
        Dann sollte alles klappen. Wir nutzen das um aus vielen kleinen "Legobausteinen" komplette Geschäftsprozesse zu nachzubilden, die aber alle die gleiche Schnittstelle bereitstsellen.
        BYE BERN

        Comment


        • #5
          Ich weiss zwar nicht, ob ich die Basisklasse über den richtigen Weg erzeugt habe (ActiveX-Bibliothek + Automatisierungsobjekt) aber durch händische Eingriffe in eine nachfolgend erzeugte Klasse (gleicher Weg, mit Änderung des Quellcodes) klappt das tatsächlich.

          Vielen Dank Bernd ;

          Comment

          Working...
          X