AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TPrinters BeginDoc erzeugt EAccessViolation

Ein Thema von Popov · begonnen am 31. Jan 2010 · letzter Beitrag vom 31. Jan 2010
Antwort Antwort
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
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#2

Re: TPrinters BeginDoc erzeugt EAccessViolation

  Alt 31. Jan 2010, 17:36
hi!

du musst auch den PrinterIndex setzten, dann sollte es keine probleme mehr geben

gruß!
Lars
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: TPrinters BeginDoc erzeugt EAccessViolation

  Alt 31. Jan 2010, 17:41
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;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

Re: TPrinters BeginDoc erzeugt EAccessViolation

  Alt 31. Jan 2010, 18:13
Zitat von daywalker9:
du musst auch den PrinterIndex setzten, dann sollte es keine probleme mehr geben
Das tat ich auch, ich hab nur eben alle weg gekürzt. Obwohl ein Muss ist es nicht, da, wenn nichts eingestellt ist, der Wert -1 ist und das den Standarddrucker ergibt.

Zitat von Luckie:
Das Printer Objekt darf man nicht erzeugen. Einfach die Unit Printers einbinden und Printer verwenden:
Ich muß jetzt gleich weg, hab es aber auf die Schnelle ausprobiert und es scheint zu funktionieren. Danke dir.

Ich schreibt gleich noch mehr wenn ich zurück bin.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: TPrinters BeginDoc erzeugt EAccessViolation

  Alt 31. Jan 2010, 18:15
Nur nicht hetzen, sonst brichst du dir bei dem Wetter noch ein Bein.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


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