Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi COM-Objekt - Objekt übergeben (https://www.delphipraxis.net/192699-com-objekt-objekt-uebergeben.html)

moritz0906 11. Mai 2017 16:13

COM-Objekt - Objekt übergeben
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Zusammen,

ich versuche in einer Software ein COM Objekt zu erstellen, das als eine der Eigenschaften ein Objekt übergibt.
Ich habe ein Beispel angehängt, in dem ihr die Funktion "MainObject" findet, diese gibt eine Instanz von TMainObject zurück.
Ich würde dieses Objekt gerne in mein COM Objekt einbinden, so dass ich auf die "public" Methoden und Eigenschaften zugreifen kann.
Zum Beispiel, angenommen ich habe eine Instanz des COM Objektes "myObject" erstellt möchte ich folgendes tun:

myObject.ChildObjects(1).Value1 // Sollte Value1 des zweiten ChildObjects zurückgeben
myObject.ChildObjects(0).Value3.Clear // Sollte die "Clear" Prozedur von Value3 des ersten ChildObjects ausführen

Das COM Objekt wird am Ende nicht in einer Delphi Applikation erstellt, es wird in der Microsoft Script Engine "jscript" erstellt.

Muss ich mein Beispiel Objekt modifizieren um das zu erreichen?
Muss ich etwas bei den Eigenschaften und Typen bei der Erstellung meines COM Objekts beachten.

Vielen Dank für eure Hilfe,
moritz

himitsu 11. Mai 2017 16:58

AW: COM-Objekt - Objekt übergeben
 
COM-Objekte sind Interfaces.

Sie kann man also in IInterface (und Nachfahren), IUnknown oder Variant speichern.

Bei IInterface brauchst du natürlich eine passende Interfaceimplementation (könnte man sich über das Menü "Komponente > Komponente importieren..." importieren).

Wenn es die Interfaces untersüzen, dann kann man auch den OleVariant verwenden.
Also wenn die gewünschten Interfaces von IDispatch erben.
Denn da kann man zur Laufzeit auf Methoden zugreifen, die man beim Kompilieren nicht extra implementiert hat, da der OleVariant das Invoke vom IDispatch behandelt.

moritz0906 11. Mai 2017 17:24

AW: COM-Objekt - Objekt übergeben
 
Hi Himitsu,

ich bin nicht sicher ob ich das Verstehe.

Die Objekte auf die ich über das COM Objekt zugreifen möchte (TMainObject und dessen Inhalt) werden von von einem anderen Part der Software erstellt und dann vom COM-Objekt part genutzt.

...Ist das verständlich ausgedrückt?

Danke,
moritz

moritz0906 12. Mai 2017 14:52

AW: COM-Objekt - Objekt übergeben
 
Danke für den Tip Himitsu, er hat mich in die richtige Richtung geführt, es klappt jetzt.

Gruss,
moritz


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