Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - TPrinter druckt immer auf Standartdrucker
coru - Mi 07.03.12 14:44
Titel: TPrinter druckt immer auf Standartdrucker
Hallo zusammen!
Ich möchte mittels TPrinter verschiedene Daten aus meinem Programm ausdrucken. Dafür
verwende ich den TPrintDialog. Leider druckt dieser aber immer auf dem Standartdrucker,
obwohl ich im Auswahlmenü einen anderen Drucker ausgewählt habe.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| if PrintDialog1.Execute then begin myPrinter := TPrinter.Create(); myPrinter.BeginDoc; myPrinter.Canvas.TextOut(0, 0, 'text'); ... myPrinter.EndDoc; end; |
Das ist im Prinzip, dass was ich mit einem Button Klick auslöse.
Moderiert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mi 07.03.2012 um 13:59
jasocul - Mi 07.03.12 14:56
Du darfst nicht "myPrinter" verwenden, sondern musst die global definierte Instanz "Printer" verwenden.
jaenicke - Mi 07.03.12 15:08
Muss ist übertrieben, aber wenn man einen eigenen benutzt (warum in diesem Fall?), muss man die Daten aus dem "echten" Printer-Objekt kopieren, da der Dialog die dorthin packt.
coru - Mi 07.03.12 15:12
Danke, jetzt funktioniert es.
Wusste gar nicht, dass schon eine globale Instanz von Printer gibt. Wo sind denn
die Unterschiede zwischen einen eignen und dem globalen?
jasocul - Mi 07.03.12 15:18
Stimmt, Jaennicke. Ein "MUSS" ist nicht zwingend. Aber wenn es keine speziellen Notwendigkeiten gibt, sollte man diese verwenden.
Der Unterschied ist, dass sie "immer" da ist und von TPrintDialog gleich korrekt angesteuert wird, ohne dass man sich Gedanken manchen muss. :wink:
Eine eigene habe ich bisher noch nicht benötigt, aber ich kann mir schon ein paar Situationen vorstellen, wo man die Printer-Instanz nicht verändern will.
jaenicke - Mi 07.03.12 16:26
Wir nutzen eine eigene Printer-Klasse und synchronisieren dort die Daten aus den Dialogen. Leider hat die Standardklasse diverse Fehler gehabt, die erst mit Delphi 2009 oder so behoben wurden. Und andere wichtige Features fehlen schlicht.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!