![]() |
TPrinters BeginDoc erzeugt EAccessViolation
Eigentlich sollte es ein Miniprogramm auf die Schnelle werden. Ich muß jede Woche Namen mit Datum in ca. 50 Formulare eintragen. Warum es nicht automatisieren, dachte ich mir? Dafür sind Programmiersprachen da um Menschen Arbeit abzunehmen. Aber schon die erste Idee mit QuickReport scheiterte daran, daß die Ausdrucke zwar auf allen PDF-Druckern funktionierten, nur bei meinem Laserdrucker immer ein Error auslöste.
Warum lange mit einem Problem aufhalten, dann nehme ich eben TPrinter. Das funktioniert auf meinem Laser-Drucker wunderbar, erzeugt aber bei allen PDF-Druckern eine EAccessViolation Meldung. Und ich weiß nicht warum. Das ist der Code den ich auf das nötigste gekürzt habe:
Delphi-Quellcode:
Bereits bei BeginDoc gibt es eine EAccessViolation Meldung. Aber nur wenn ich auf PDF Druckern drucke. Davon habe ich inzwischen drei Versionen die sich im Laufe der Zeit angesammelt haben.
var
Printer2: TPrinter; begin Printer2 := TPrinter.Create; try with Printer2 do begin BeginDoc; NewPage; EndDoc; end; finally Printer2.Free; end; end; Ich sehe da keinen Fehler. Das Sonderbare ist aber, daß ich das Demobeispiel aus der Delphihilfe auch getestet habe und dieses wiederum auf allen Druckern funktioniert. Man könnte meinen, daß ich vor diesem Code irgendwas zerschossen habe, ist aber nicht so. Vor diesem Code wird nichts ausgeführt. Eigentlich ist das Problem nicht dringend, da es auf den Laserdrucker ankommt, aber es wurmt micht wieso es bei einigen Druckern Fehlermeldungen gibt. Kennt das einer und hat das Problem erfolgreich behoben? |
Re: TPrinters BeginDoc erzeugt EAccessViolation
hi!
du musst auch den PrinterIndex setzten, dann sollte es keine probleme mehr geben gruß! |
Re: TPrinters BeginDoc erzeugt EAccessViolation
Das Printer Objekt darf man nicht erzeugen. Einfach die Unit Printers einbinden und Printer verwenden:
Delphi-Quellcode:
if PrintDialog.Execute then
begin with Printer do begin Title := APPNAME; BeginDoc; |
Re: TPrinters BeginDoc erzeugt EAccessViolation
Zitat:
Zitat:
Ich schreibt gleich noch mehr wenn ich zurück bin. |
Re: TPrinters BeginDoc erzeugt EAccessViolation
Nur nicht hetzen, sonst brichst du dir bei dem Wetter noch ein Bein.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 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