Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Daten austauschen zw. fremden Prog (AddIn) und meinem Prog (https://www.delphipraxis.net/132743-daten-austauschen-zw-fremden-prog-addin-und-meinem-prog.html)

RWarnecke 18. Apr 2009 18:18


Daten austauschen zw. fremden Prog (AddIn) und meinem Prog
 
Hallo zusammen,

ich möchte gerne Daten zwischen einem meiner Programme (selbst geschrieben in Delphi) und einer Fremdsoftware austauschen. Ich habe bei der Fremdsoftware die Möglichkeit eines Plugin's. Mit MSDN-Library durchsuchenWM_COPYDATA weiß ich, dass ich zwischen zwei Programmen Daten in Form von Text austauschen kann. Es soll aber nicht nur Text ausgetauscht werden sondern auch andere Binäre Daten. Das heißt eventuell über einen Stream.
Ich hatte dazu die Idee die Komponenten TCPClient und TCPServer zu verwenden, was mir aber ein bisschen überdemensioniert vorkommt.

Deshalb meine Frage :
Wie würdet Ihr die Aufgabe angehen und mit welchen Befehlen und/oder Komponenten würdet Ihr das realisieren ? Der Austausch soll in beide Richtungen gehen.

Edit: Rechtschreibfehler korrigiert.

DeddyH 18. Apr 2009 18:20

Re: Daten austauschen zw. fremden Prog (AddIn) und meinem Pr
 
Muss das nicht in der Fremdsoftware klar definiert sein? Ich würde mal dessen Doku studieren.

RWarnecke 18. Apr 2009 18:29

Re: Daten austauschen zw. fremden Prog (AddIn) und meinem Pr
 
Ich schaue nochmal nach, bin aber fast sicher, dass die Software es nicht zulässt. Deshalb ja meine Idee, mit dem PlugIn welches als Schnittstelle dienen soll.

DeddyH 18. Apr 2009 18:32

Re: Daten austauschen zw. fremden Prog (AddIn) und meinem Pr
 
Ja, aber die Plugin-Schnittstelle muss doch auch definiert sein, oder täusche ich mich?

RWarnecke 18. Apr 2009 18:49

Re: Daten austauschen zw. fremden Prog (AddIn) und meinem Pr
 
Die PlugIn-Schnittstelle ist definiert. Ich kann aber lediglich nur eigene Fenster erstellen, die direkt von der Anwendung aufrufbar sind.

Ein Beispiel welches es vielleicht am besten verdeutlicht, ich möchte es nur auf ein andere Programm anwenden :
Ich habe doch das Programm Code-Orakel geschrieben. Nun möchte ich ein Code-Beispiel aus Code-Orakel im RAD-Studio in den bestehenden Sourcecode einfügen. Nach meinem Wissenstand gibt es jetzt drei Möglichkeiten.
1. Möglichkeit --> Ich kopieren das Beispiel über die Zwischenablage in den bestehenden Sourcecode. (Einfachste)
2. Möglichkeit --> Ich schreibe einen Experten für's RAD, welcher dann auf die Datenbank zugreift und ich mit einem Button Klick den Sourcecode einfüge. (Etwas schwieriger als Möglichkeit 1, habe aber so doppelten Aufwand.)
3. Möglichkeit --> Ich habe in meinem bestehenden Programm einen Menüpunkt oder einen Button. Wenn nun auf den Button geklickt wird, dann wird der Sourcecode an den Experten geschickt. Dieser Experte fügt dann den Sourcecode in die geöffnete Unit ein.

Und sowas wie in Möglichkeit 3 beschrieben möchte ich realisieren. Oder denke ich mal wieder zu kompliziert ?

Edit : Wie gesagt, dass mit dem RAD-Studio soll nur ein Beispiel sein.

Apollonius 18. Apr 2009 19:33

Re: Daten austauschen zw. fremden Prog (AddIn) und meinem Pr
 
WM_COPYDATA ist nicht nur für Strings. Du gibst nur einen Zeiger auf die Daten und die Länge mit.

RWarnecke 18. Apr 2009 19:57

Re: Daten austauschen zw. fremden Prog (AddIn) und meinem Pr
 
Zitat:

Zitat von Apollonius
WM_COPYDATA ist nicht nur für Strings. Du gibst nur einen Zeiger auf die Daten und die Länge mit.

Und dann kann ich auch Binäre Daten über geben ? Kann ich denn bei PlugIn's einfach WM_COPYDATA nehmen ?
Wenn ich das SendMessage in dem PlugIn Benutze habe ich dann nicht ein falsches Handle ?

Apollonius 18. Apr 2009 20:03

Re: Daten austauschen zw. fremden Prog (AddIn) und meinem Pr
 
Wenn du dein Plugin erstmal im Programm drin hast, ist es einfach. Du erstellst an beiden Kommunikationsendpunkten ein Fenster mit einem eindeutigen Klassennamen oder einem eindeutigen Titel, welches du dann vom anderen Endpunkt aus mit FindWindow suchst, und kannst dann munter deine Daten versenden. Beim Plugin musst du nur sicher gehen, dass der Host auch eine Nachrichtenschleife hat. Wenn du ganz sicher gehen willst, erstellst du einen eigenen Thread, der die ganze Kommunikation erledigt.

DeddyH 18. Apr 2009 20:05

Re: Daten austauschen zw. fremden Prog (AddIn) und meinem Pr
 
Ich denke, es geht um den Austausch mit einem Fremdprogramm :gruebel:.

RWarnecke 18. Apr 2009 20:10

Re: Daten austauschen zw. fremden Prog (AddIn) und meinem Pr
 
@Apollonius: Ok, ich glaube das habe ich soweit kapiert. Werde es in den nächsten Tagen mal ausprobieren und mich dann wieder mit dem Ergebnis melden.

Zitat:

Zitat von DeddyH
Ich denke, es geht um den Austausch mit einem Fremdprogramm :gruebel:.

Ja es geht darum, wobei ich das PlugIn in dem Fremdprogramm als Schnittstelle nutze.


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