Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi C#-Code nach Delphi (https://www.delphipraxis.net/47542-c-code-nach-delphi.html)

CalganX 12. Jun 2005 21:55


C#-Code nach Delphi
 
Hi,
eigentlich ist der Titel des Threads viel zu allgemein, da ich nur eine kleine Frage habe. ;)
Ich möchte gerne mit Hilfe des COM-Interfaces von Apple mein iTunes steuern. Soweit funktioniert das auch perfekt. Mit Hilfe einer Anleitung, ist das auch ganz toll unter C#. Jetzt muss ich aber leider eine Win32-DLL erzeugen. Darum frage ich mich, wie ich das
Code:
myiTunes.OnPlayerPlayEvent += new _IiTunesEvents_OnPlayerPlayEventEventHandler(
    myiTunes_OnPlayerPlayEvent);
in Delphi schreibe. Eigentlich ja so:
Delphi-Quellcode:
myiTunes.OnPlayerEvent := _IiTunesEvents_OnPlayerPlayEventEventHandler(MyEvent);
Das Problem ist jetzt aber: es gibt weder die Eigenschaft OnPlayerEvent, noch gibt es den Typen bzw. das Interface _IiTunesEvents_....

Hat jemand einen guten Vorschlag? :?

Chris

PS: Es reichen mir Vorschläge. Fertige Lösungen wird wohl keiner haben, da ich mal schätze dass sich niemand damit bisher beschäftigt hat. :|

Robert_G 12. Jun 2005 22:14

Re: C#-Code nach Delphi
 
Du hast schon die TypeLib importiert, oder? :gruebel:

Und wenn du es hast, solltest du ja sehen können welche Signatur der Funktionspointer von OnPlayerEvent erwartet. ;)

dizzy 12. Jun 2005 23:18

Re: C#-Code nach Delphi
 
Nur am Rande:
Code:
myiTunes.OnPlayerPlayEvent +=
Delphi-Quellcode:
myiTunes.OnPlayerEvent :=
Is der Unterschied sichtbar? ;) (Evtl. war's ja auch nur nen Abtippfehler, aber man weiss ja nie...)

Robert_G 12. Jun 2005 23:28

Re: C#-Code nach Delphi
 
Zitat:

Zitat von dizzy
Nur am Rande:
Code:
myiTunes.OnPlayerPlayEvent +=
Delphi-Quellcode:
myiTunes.OnPlayerEvent :=
Is der Unterschied sichtbar? ;) (Evtl. war's ja auch nur nen Abtippfehler, aber man weiss ja nie...)

.Net Events sind multi cast delegates. Es können also beliebig viele Events "eingeklinkt" werden.
Delphi events sind meistens nur Properties vom Typ _eines_ Funktionszeigers. Die direkte Zuweisung ist also korrekt. ;)

dizzy 13. Jun 2005 01:41

Re: C#-Code nach Delphi
 
Mir gings auch garnicht um die eigentliche Zuweisung... schau auf den Namen der Property :roll: ;)
\\edit: Und die Klamotte mit den Delegates (und ihrem Nichtvorhandensein in Delphi) ist mir wohl bekannt *beteuer* :)

CalganX 13. Jun 2005 15:01

Re: C#-Code nach Delphi
 
Hi,
@Robert: jaja, natürlich habe ich die Typenbibliothek importiert. :zwinker: Ganz vergesslich bin ich auch noch nicht geworden.
Und deinen Vorschlag habe ich natürlich auch schon ausprobiert. Das Problem ist nur, dass es nichts dergleichen gibt, was mit "On" anfängt oder sonst auf ein Event hinweisen würde. Und das ist mein Problem. ;)

@dizzy: Das mit dem Namen war wirklich nur ein Tippfehler. ;)

Chris

mirage228 13. Jun 2005 17:02

Re: C#-Code nach Delphi
 
Hi,

bei .NET Multicast Events benutzt man eigentlich Include(), wobei der ersten Parameter, das Ereignis, das ergänzt werden soll ist und der zweite dann die Methode selbst. Imho aber nur unter Delphi.NET.

Ansonsten: Wie sieht den die erzeugte TLB.pas aus? Kannst Du die mal anhängen?

mfG
mirage228

CalganX 13. Jun 2005 17:31

Re: C#-Code nach Delphi
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
Zitat:

Zitat von mirage228
Ansonsten: Wie sieht den die erzeugte TLB.pas aus? Kannst Du die mal anhängen?

sicher doch. ;)
Wenn du iTunes hast, kannst du sie dir theoretisch auch selber erzeugen bzw. verwenden.

Chris

CalganX 13. Jun 2005 20:50

Re: C#-Code nach Delphi
 
Hi,
ich muss das Problem ausweiten, darum mache ich einen Thread auf, weil das Problem ist nicht einfach eine Übertragung von Code, sondern das ganze Verständnis von COM-Objekten. :(

Chris

[edit=Chakotay1308]Neues Thema, siehe hier. Mfg, Chakotay1308[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz