Einzelnen Beitrag anzeigen

gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#1

KEINE Nachricht an Programm schicken ...

  Alt 22. Mär 2007, 12:25
Hallo DP,

Folgendes Scenario:
Ich schreibe an einem Hauptprogramm und einer Editor-DLL.
Mein Hauptprogramm lädt ein Dokument aus einer Datenbank und speichert es auf Platte. Dann lädt es dyn. die Editor-DLL welche dann das Dokument zur Bearbeitung öffnet. Wunderbar, das funktioniert.

Wenn ich das Dokument wieder speichern möchte, habe ich es bis jetzt so gelöst, das die DLL das Dokument auf die Platte schreibt und danach dem Hauptprogramm per PostMessage eine Nachricht schickt. Bei Empfang der Nachricht kopiert das Hauptprogramm das Dokument wieder in die Datenbank und beendet ggf. die Editor-Dll.

Um Dokumente zu öffnen nutze ich im Hauptprogramm (m)eine Klasse TMyDoc die im Create die DLL lädt, im Destroy sie wieder aus dem Speicher entfernt und natürlich die proceduren LoadDoc und SaveDoc.

Das Problem:
Was mir an der ganzes Sache überhaupt nicht gefällt, ist das Senden einer Message von der DLL ins Hauptprogramm um das Dokument zu speichern. Das ist irgendwie

Dafür muß es doch eine bessere Lösung geben. Könnt ihr mir da helfen?

Voraussetzungen sind aber:
Die DLL baut keine Verbindungen mit der DB auf und
Ich kann/darf keinen Speichermanager verwenden.

Ich stelle mir eher sowas vor, dass die Message direkt an die Klasse in der Hauptanwendung geht,
oder das die DLL die TmyDoc.SaveDoc-Funktion ruft.

Ziel des ganzen soll es werden, das mein Hauptprogramm gleichzeigt mehrere Dokumente öffnen kann, in dem es für jedes Dokumente eine Instanz von TMyDoc erstellt. Ich denke die Idee ist so falsch nicht, oder.

Wie weiß nicht wie man das realisieren kann und hoffe ich könnt mir einen Weg zeigen.
Ich paar Stichworte täten zur Not schon reichen

Grüße
gmc


P.S. Sorry für den Titel, aber es ist schwer für das Problem eine treffsichere Schlagzeile zu finden.
  Mit Zitat antworten Zitat