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.