AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Probleme mit WritePrinter aus Thread

Ein Thema von TurboMagic · begonnen am 10. Aug 2018 · letzter Beitrag vom 15. Aug 2018
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.038 Beiträge
 
Delphi 12 Athens
 
#1

Probleme mit WritePrinter aus Thread

  Alt 10. Aug 2018, 19:45
Hallo,

ich habe eine Delphi Anwendung die direkt ESC/POS Kommandos zum Drucker schickt. Bisher ging alles gut, bis ich gelesen habe, dass WritePrinter eine blockierende Anweisung ist und das dann in einen Thread verlagert habe. Seit dem wird nur noch Müll gedruckt.

Hat jemand eine Idee?
Delphi berlin, die zu druckenden Testdaten kommen sauber in der Drucken methode die über die Execute-Methode aufgerufen wird an.

Grüße

Turbomagick
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Probleme mit WritePrinter aus Thread

  Alt 10. Aug 2018, 22:05
Und das openprinter ist im gleichen thread?

Gruß
k-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.038 Beiträge
 
Delphi 12 Athens
 
#3

AW: Probleme mit WritePrinter aus Thread

  Alt 11. Aug 2018, 08:05
Wie ich gerade sehe ist es das nicht. Das wird vorab mal "irgendwann" aufgerufen. Wenn ich später zum programmieren komme versuche ich mal, das in die Execute zu verlagern. Musds ich aber erst prüfen welche anderen Konsequenzen das hat.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.038 Beiträge
 
Delphi 12 Athens
 
#4

AW: Probleme mit WritePrinter aus Thread

  Alt 11. Aug 2018, 10:00
Habe jetzt das Open Printer testhalber in den Thread verlagert, Drucker druckt aber immer noch Schrott!
Ich ziehe mal die alte Drucken Unit aus der Quelltextverwaltung und probier's mal ohne Thread.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.038 Beiträge
 
Delphi 12 Athens
 
#5

AW: Probleme mit WritePrinter aus Thread

  Alt 12. Aug 2018, 08:54
So, Drucken wieder auf alten Stand mit Drucken aus VCL GUI Thread heraus umgestellt. Druck klappt wieder. Außerdem eben nochmal die These mit "Open Printer im Druck Thread aufrufen" getestet und wiederlegt.

Ich habe meine Unit kopiert und sowohl die Unit als auch die Klasse umbenannt. Dann im Hauptprogramm einen Testmenüpunkt zum Ausdruck des Testbons eingebaut und die Klasse auf TThread so umgestellt, dass diese suspended erzeugt wird (im Constructor wird das Druckerhandle besorgt!). Den Code aus der Testdruck Methode in die Execute verlagert und in der Testdruck Methode Start; aufgerufen.

Druckt prima und keinen Quatsch.

=> Besorgung des Handles via OpenPrinter muss nicht im thread selbst erfolgen
=> Mein Fehler muss woanders liegen, vermutlich in der Übergabe der Daten an den Thread, wobei die eigentliche Druckausgabe Routine sauber aussah. Mal sehen.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.038 Beiträge
 
Delphi 12 Athens
 
#6

AW: Probleme mit WritePrinter aus Thread

  Alt 13. Aug 2018, 19:50
So, nach dem ich es wieder auf die alte Fassung umgestellt hatte, damit das Druckern überhaupt funktioniert, bin ich es nochmals angegangen. Ich habe es jetzt erfolgreich auf Multithreaded umgestellt und OpenPrinter befindet sich nicht im Thread selbst.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 19:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz