Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Eigene Instanz von Printers / Fragen zum Druck

  Alt 2. Jun 2008, 09:07
[OT]ich finds verständlich. Durch die Verwendung von Threads:
- würden ja sonst mehrere gleichzeitig auf Printers.Canvas arbeiten (der Hauptthread + der erzeugte Thread). Bei wahl des gleichen Druckers würden die Dinge dann wohl übereinander gemalt. Und während ein Thread mit auf der Canvas malt etc. und der andere Thread setzt das Printer-Object plötzlich auf einen anderen Drucker um kommt auch müll raus. Und wenn plötzlich der andere Thread ein NewPage macht landet plötzlich auch alles auf dem nächsten Blatt und das erste bleibt unvollständig.
Zudem ist unklar ob das VCL-Printers-Object Threadsafe ist.

Um das Threadsafe etc. abzusichern würde ich das Drucken im Thread in eine DLL auslagern. Diese DLL dann dynamich im Thread laden und die Druckfunktion aufrufen. Dadurch ist der Hauptthread in der DLL dieser welchen du vorher manuell gestartet hast (denn der Hauptthread ist der mit welchem die Initializations etc. abgearbeitet werden).
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat