AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DLL + DataModule in Objektinspektor

Ein Thema von sir-archimedes · begonnen am 16. Jan 2006 · letzter Beitrag vom 12. Jun 2006
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#11

Re: DLL + DataModule in Objektinspektor

  Alt 25. Apr 2006, 19:15
Soweit ist mir das klar. Nur habe ich da noch ein Verständnisproblem, bezüglich den Verbindungsdaten. Wenn ich eine Unit habe, dann binde ich doch ganz einfach mit dem Befehl :

Delphi-Quellcode:
uses
  DataModule;
Mein DataModule in die Unit meiner Application ein. Danach kann ich ja mit der folgenden Codezeile :

Delphi-Quellcode:
DataModule.ZConnection.Host := Edit1.Text;
DataModule.ZConnection.Database := Edit2.Text;
.
.
.
u.s.w.
meine Verbindungsdaten an die Komponente ZConnection senden. Wie mache ich das ganze jetzt, wenn es über die DLL geht ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von DirkG
DirkG

Registriert seit: 29. Sep 2003
Ort: Schwerin
67 Beiträge
 
Delphi 5 Enterprise
 
#12

Re: DLL + DataModule in Objektinspektor

  Alt 26. Apr 2006, 10:43
Nun eine DLL hat eine Schnittstelle, mit der sie nach aussen kommuniziert. Ich gehe immer den Weg, das meine Komponente die Eigenschaften besitzt, die ich für die Steuerung der DLL benötige. Die DLL wird von der Komponente dynamisch geladen und dann die DLL Funktionen (Eigenschaft lesen) / Prozeduren (Eigenschaft setzen) aufgerufen, die für die folgende Aufgabe notwendig sind. Dann rufe ich die Prozedur der DLL auf hole das Ergebnis in die Komponente und entlade die DLL wieder. Dieser weg ist zwar etwas umständlich (Komponente und DLL sind ja etwa das gleiche, wenn ich die Funktionen betrachte) aber ich kann in meinen Programmen problemlos auf die DLL zugreifen.
Es gibt da noch die Möglichkeit mit OCX und Interface aber da bin ich selber noch nicht ganz hintergestiegen. Wenn du das hinbekommst, kannst du die DLL oder OCX über die Delphi IDE direkt einbinden. Die Schnittstelle wird von Delphi generiert. Aber dazu müsstes du hier mal jemand anders befragen.
Human are Human to make mistakes.
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#13

Re: DLL + DataModule in Objektinspektor

  Alt 28. Apr 2006, 19:38
Ich verstehe im Moment nur Bahnhof. Was muss ich jetzt genau machen, wenn ich das was ich hier geschrieben habe :


Zitat von RWarnecke:
Wenn ich eine Unit habe, dann binde ich doch ganz einfach mit dem Befehl :

Delphi-Quellcode:
uses
  DataModule;
Mein DataModule in die Unit meiner Application ein. Danach kann ich ja mit der folgenden Codezeile :

Delphi-Quellcode:
DataModule.ZConnection.Host := Edit1.Text;
DataModule.ZConnection.Database := Edit2.Text;
.
.
.
u.s.w.
meine Verbindungsdaten an die Komponente ZConnection senden. Wie mache ich das ganze jetzt, wenn es über die DLL geht ?
mit einer DLL erreichen will ?

Mein erster Gedanke war, ich schreibe meine Verbindungsdaten in eine temporäre Datei und führe dann die Funktion DBInit aus. Damit könnte sich dann meine ZConnection mit der Datenbank verbinden. Soweit mein Gedankengang. Jetzt wüsste ich aber nicht, wie ich jetzt die DataSource mit einem DBGrid zum Beispiel verbinde. Wie muss ich das jetzt machen ? Mein DBGrid zum Beispiel ist in der Hauptform.

Für ein bisschen Sourcecode wäre ich sehr dankbar, da ich im Moment komplett auf der Leitung stehe.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
USchmidt

Registriert seit: 12. Jun 2006
Ort: Friedberg
2 Beiträge
 
#14

Re: DLL + DataModule in Objektinspektor

  Alt 12. Jun 2006, 16:44
Hallo,

auch wenn ich mich erst jetzt der Sache anschließe, habe ich damit folgendes Problem:

Ich generiere im "DLL_PROCESS_ATTACH" - Abschnitt das Datenmodul incl. CoInitialize(nil).
Im "DLL_PROCESS_DETACH" möchte ich es wieder freigeben. Leider führt dies aber zum Fehler.
Lasse ich der Freigabe (Datenmodul.Free) weg, funktioniert es unter NT/W2k aber bei XP gibt
es eine Fehlermeldung (Datenmodul wird mit nil erzeugt). Die Fehlermedlung verweist auf die
MSDART.DLL mit der anschließenden super Fehlermeldung '216'. Im OnDestroy-Ereignis des
Datenmoduls gebie ich nur meine Objekte frei, das scheint auch noch zu funktionieren,
da der Fehler nach dem Verlassen der Procedure auftritt. Nur habe ich doch keine andere
Möglichkeit das Modul freizugeben. Die Unit "ShareMem" muß doch nur eingebunden werden,
wenn man z.B. Strings und TStrings und der gleichen mit der Applikation austauschen will ?

Noch 'ne Frage:

Delphi-Quellcode:
function DBUnInit: boolean; stdcall;
begin
  Result := true;
  bDoCoUninitialize := false;
  bDoDestroyDM_ADO := false;
  try
    if bDoDestroyDM_ADO then
      MyDatemodul.Free;
    if bDoCoUninitialize then
      CoUninitialize; -> das wird doch nie ausgeführt ?
  except
    Result := false;
  end;
end;
Ich hoffe, jemend kann mir einen Tipp geben - Danke ??
Es ist besser, den Kopf über den Aufgaben und nicht die Aufgaben über den Kopf wachsen zu lassen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:35 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