AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi DLL, DDE oder OLE ???
Thema durchsuchen
Ansicht
Themen-Optionen

DLL, DDE oder OLE ???

Ein Thema von cheatzs · begonnen am 29. Dez 2003 · letzter Beitrag vom 29. Dez 2003
Antwort Antwort
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#1

DLL, DDE oder OLE ???

  Alt 29. Dez 2003, 11:14
Hi Leute,
also ich arbeite gerade an einem größeren Projekt.
Nun bin ich an die Grenzen meines Verständinisses gelangt:
Ich habe ein Programm dass verschiedenste Daten auswerten lassen soll. Dass soll ein anderes Programm oder DLL erledigen. Dann das Ergebnis der Auswertung dem ersten Programm wieder übermitteln. Das Auswert-Programm sollte vom Benutzer nich wahrgenommen werden.
Nun weiß ich allerdings nicht für welche Variante ich mich entscheiden soll, da ich von allen 3 noch nicht gerade viel verstehe:
Übertragen zwischen den Programmen muss:

ein String und ein Integer, also nicht viel

Da die Auswertung der Daten wahrscheinlich sehr lange dauern wird wollte ich irgendeine Fortschrittsanzeige einbinden. Bei DLL's könnte man ja ein Form einblenden, das würde zwar nicht so schön aussehen, würde aber den Zweck erfüllen. Nun weiß ich nich was bei DDE oder OLE Möglich ist, allerdings hoffe ich das es möglich wäre eine Art Feld in dem ersten Programm freizuhalten in dem man dann diese Fortschrittsanzeige direkt anzeigen kann.
Das ganze muss deshalb so kompliziert sein, da die Fortschrittsanzeige und auch das Auswertprogramm völlig variable sein müssen; also auch von anderen Programmieren erweiterbar sein sollen, usw. Außerdem könnte ich mir vorstellen vielleicht über andere Programmiersprachen, z.B Java, oder unter Linux auf dieses Auswertprogramm zugreifen zu können, ohne es neu programmieren zu können.

Wäre gut wenn jemmand Erfahrung mit DLL, DDE oder OLE hatt und mir erklären kann, welches am sinnvollsten ist bzw. ob das überhaupt möglich ist. Vielleicht kennt jemmand auch noch eine andere Methode? ( hab mal was von XML Kommunikation zwischen 2 Programmen gehört )
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Rainer_Unger

Registriert seit: 2. Dez 2003
Ort: Heidelberg
17 Beiträge
 
#2

Re: DLL, DDE oder OLE ???

  Alt 29. Dez 2003, 11:29
Hallo,

grundsätzlich:

Eine DLL ist im Prinzip nichts anderes als ausgelagerter Code. Die läuft auch nicht von selber.

OLE und DDE sind Verbindungsmechanismen, also etwas ganz anderes.

Wenn du also einen Thread laufen hast, könntest du mit DDE deine Daten übertragen. Hab ich schon gemacht klappt einwandfrei.
Nachteil:
Es sind clevere Handshakemechanismen erforderlich damit nichts verloren geht.

Dein Problem lösen kannst du mit keinem dieser Dinge. Du musst schon einen Prozess im Hintergrund laufen lassen und auf diesen mittels dde zugreifen.

Solltest du nähere Informationen brauchen stehe ich gerne zur Verfügung!

Rainer Unger
Ich weiss was ich kann und vor allem auch was ich nicht kann!
Du auch?
  Mit Zitat antworten Zitat
Benutzerbild von Wormid
Wormid

Registriert seit: 26. Aug 2003
Ort: Steinfurt
292 Beiträge
 
Delphi XE2 Professional
 
#3

Re: DLL, DDE oder OLE ???

  Alt 29. Dez 2003, 11:32
Moin,

ich persönlich würde es mit einer DLL versuchen...

Deiner Function/Procedure in der DLL übergibst du als zusätzlichen Parameter das Handle einer ProgressBar in deiner Hauptanwendung... Und dann kannst du z.B. per Messages (beschrieben z.B. auf Seite 76 ff. in Luckies Win32Api-Tutorials -> http://www.luckie-online.de/tutorial...orials_pdf.pdf ) die Progressbar in der Hauptanwendung updaten.

Der Vorteil dieser Lösung wäre, das es relativ einfach zu realisieren sein sollte und das es nicht nötig ist, dicke Forms usw. in die DLL mit reinzupacken.

Mit freundlichem Gruß

Wormid
Debuggers don't remove Bugs, they only show them in Slow-Motion.
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: DLL, DDE oder OLE ???

  Alt 29. Dez 2003, 11:44
Moins,

also das was du suchst klingt ziemlich genau nach nem Automation-Server.
Dort wird die Aufgabe über ein Interface an das COM-Objekt im Automation-Server weitergegeben.
Die komplette Aufgabe wird dann unabhängig von deiner Clientanwendung durchgeführt.
Ist alles erledigt benachrichtigt der Automation-Server die Clientanwendung, dass
die Arbeit erledigt ist und das Ergebnis vorliegt.

Nachteil: Es ist COM, sprich bissl Einarbeitung nötig!
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#5

Re: DLL, DDE oder OLE ???

  Alt 29. Dez 2003, 12:00
@Generalissimo
von COM hab ich noch nichts gehört, deswegen weiß ich nich was du meinst

@Rainer_Unger
Ein andere Prozess im Hintergrund würde mich nicht stören, mir gehts dann eigentlich bloß um folgende Sache:

@Wormid
Das klinkt schon sehr gut, aber eine Frage:
könnte man über die DLL auch die Progressbar im Hauptprogramm initialisieren, nicht "nur" steuern (bzw. auch andere Komponenten)?
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: DLL, DDE oder OLE ???

  Alt 29. Dez 2003, 12:26
Nix gehört? Hast du bestimmt schon! Lief mal ne Weile unter ActiveX.
Wenn du Delphi6 hast, dann geh mal unter Datei->Neu auf die Reiterseite ActiveX.
Zudem stehen unter Delphi6 unter der Komponentenpalette "Server" die ganzen
Automation-Server von Word, Excel, Outlook ... zur Verfügung.
Die sind nichts anderes als Wrapper-Kompos von COM-Objekten die auf deinem System
auch vorhanden sein müssten.
Kannst ja mal in Delphi unter Projekt->Typbibliothek importieren gehen und dort in der
Liste nach "Microsoft Word ... Object.." suchen.
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#7

Re: DLL, DDE oder OLE ???

  Alt 29. Dez 2003, 12:42
Hi,
also ActiveX kenn ich und hab auch Infos dazu, bloß kann man diese auch dynamisch einbinden?
Also wenn ich das ActiveX Element irendwo runterlade und dem laufenden Programm sage das er das benutzen soll. Geht das?
Soweit ich weiß muss man die ActiveX Elemente zur Entwicklung des Programms einfügen, oder?
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: DLL, DDE oder OLE ???

  Alt 29. Dez 2003, 13:13
Halt dich nicht zu fest an Active X fest.
Active X ist wie ein eignes Programm. In sich abgeschlossen "nur" keine Exe (bitte jetzt mich nicht
verprügeln. Ich weiss das das nicht korrekt beschrieben ist)
Active X war dazu gedacht z.B. fürs Web in die Page ein Programm einzubinden.
(Vorgänger war OCX. Active X war die abgespeckte Version von OCX da im Web die Übertragungszeit
entscheidet.) Das ging natürlich auch mit normalen Programmen.

Zu deiner Frage: Ja kann man dynamisch machen. Geh mal in D6 auf Komponente->Active X importieren
Wenn du z.B. Acrobat hast, müsste dort irgensowas auftauchen oder halt ne andere Kompo.
Die installierst du unter der Reiterseite Active X und in ein gewünschtes Package (am besten ein neues
da dann die Deinstallation am leichtesten ist.)
Dann mal auf ein Form ziehen. Danach kann mann ja sich mal in der Unit des ActiveX-Controlls umschauen.
Dort wirst du dann ein Create Prozedure finden.

Ein Buchtipp hätte ich noch. Wenn du dich mit dem Thema näher beschäftigen willst.
COM/DCOM/COM+ mit Delphi ISBN: 3935042019
Das Buch ist von Andreas Kosch geschrieben. Unter Entwickler Forum bekommt man
auch direkt von ihm Antworten.
Ist aber ein sehr komplexes Thema!!! Überleg ob sich der Aufwand mit dem Nutzen deckt und ob du das nötige
Vorwissen mitbringst. Ich bin selber noch am lernen in dem Bereich.

Ich jedenfalls fand und finde es ein sehr interessantes Thema (COM meine ich). Da es vorallem immer wichtiger wird.
Stichwort NET Enterprise Services.
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#9

Re: DLL, DDE oder OLE ???

  Alt 29. Dez 2003, 13:16
Zitat von cheatzs:
Hi,
also ActiveX kenn ich und hab auch Infos dazu, bloß kann man diese auch dynamisch einbinden?
ActiveX und OLE basieren auf COM, oders anders gesagt sind Teilbereiche von COM
Zitat von cheatzs:
Also wenn ich das ActiveX Element irendwo runterlade und dem laufenden Programm sage das er das benutzen soll. Geht das?
ja
Zitat von cheatzs:
Soweit ich weiß muss man die ActiveX Elemente zur Entwicklung des Programms einfügen, oder?
Zur Entwicklungszeit muß das Interface bekannt sein, daß man ansprechen will, nicht die implementation. Etwas mehr wird benötigt, wenn man visuell entwickeln will, aber auch dann wird nur die Typelibrary wirklich benötigt.
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#10

Re: DLL, DDE oder OLE ???

  Alt 29. Dez 2003, 13:38
Danke an die vielen Antworten, jetzt weiß ich erstmal wo ich stehe.
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:56 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