Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#1

TPrinters BeginDoc erzeugt EAccessViolation

  Alt 31. Jan 2010, 17:31
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:
var
  Printer2: TPrinter;
begin
  Printer2 := TPrinter.Create;
  try
    with Printer2 do
    begin
      BeginDoc;
      NewPage;
      EndDoc;
    end;
  finally
    Printer2.Free;
  end;
end;
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.

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?
  Mit Zitat antworten Zitat