Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Drucken aus Record (https://www.delphipraxis.net/189108-drucken-aus-record.html)

Pfl 4. Mai 2016 14:20

Drucken aus Record
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo, liebe Community,
ich versuche gerade, aus einem record einen Satz an den Drucker zu senden; die Frage ist nur, wie mache ich das am besten? Ich habe folgenden Code versucht:

Delphi-Quellcode:
procedure TFormMain.Drucken1Click(Sender: TObject);
var
  i   : integer;
  ptext: TextFile;
begin
  // Datei an den Drucker senden; abh. von der Position des Zeigers
  if anzdst = 0
  then
    exit;

  AssignPrn(ptext); // text zuweisen
  printer.Canvas.Font.Size := 12;
  // Hier Exception
  Writeln(
    ptext,
    '----------------------------------------------------------------------');
  for i := 1 to anzdst do
    with bereich[i] do
      Writeln(
        ptext,
        ' ',
        Hardwarename,
        ' ',
        ' ');
  CloseFile(ptext); // Datei schliessen; damit wird das Objekt wieder entf.
end;
Allerdings tritt eine Zugriffsverletzung auf, die offenbar beim Zuweisen durch assign passiert (ist). Was kann ich da tun?

LG

Neutral General 4. Mai 2016 14:22

AW: Drucken aus Record
 
Du hast das "printer" nie initialisiert bzw. erstellt, daher die Zugriffsverletzung.

DeddyH 4. Mai 2016 14:28

AW: Drucken aus Record
 
Printer wird automatisch initialisiert. Früher war das eine globale Variable, jetzt eine Funktion, die eine TPrinter-Instanz zurückgibt. Daran liegt es also nicht.

Klaus01 4. Mai 2016 14:34

AW: Drucken aus Record
 
Hallo,

bereich ist das ein Array?

Vielleicht funktioniert es dann so?

Delphi-Quellcode:
procedure TFormMain.Drucken1Click(Sender: TObject);
var
  i : integer;
  ptext: TextFile;
begin
  // Datei an den Drucker senden; abh. von der Position des Zeigers
  if length(bereich) = 0
  then
    exit;

  AssignPrn(ptext); // text zuweisen
  printer.Canvas.Font.Size := 12;
  // Hier Exception
  Writeln(
    ptext,
    '----------------------------------------------------------------------');
  for i := low(bereich) to high(bereich) do
    with bereich[i] do
      Writeln(
        ptext,
        ' ',
        Hardwarename,
        ' ',
        ' ');
  CloseFile(ptext); // Datei schliessen; damit wird das Objekt wieder entf.
end;
Grüße
Klaus

DeddyH 4. Mai 2016 15:10

AW: Drucken aus Record
 
Kleiner Hinweis:
Zitat:

AssignPrn bewirkt in Delphi, dass alle in die Textdateivariable F geschriebenen Informationen an den Drucker weitergeleitet werden. Nachdem Sie der Textdateivariable einen Wert zugewiesen haben, müssen Sie die Prozedur Rewrite aufrufen.

Pfl 5. Mai 2016 18:35

AW: Drucken aus Record
 
Danke für die schnellen Antworten :) Ich habe printer aus der uses entfernt; aber stattdessen become ich fehler 103. Was soll das den nun wieder bedeuten?

DeddyH 5. Mai 2016 18:40

AW: Drucken aus Record
 
Zitat:

Zitat von Pfl (Beitrag 1337557)
Ich habe printer aus der uses entfernt

Zitat:

Zitat von Pfl (Beitrag 1337557)
Was soll das den nun wieder bedeuten?

Um es in Deinen Worten zu sagen :)

Pfl 5. Mai 2016 19:06

AW: Drucken aus Record
 
Ach so ja :lol: sorry

Luckie 5. Mai 2016 19:19

AW: Drucken aus Record
 
Zitat:

Zitat von Pfl (Beitrag 1337557)
Danke für die schnellen Antworten :) Ich habe printer aus der uses entfernt; aber stattdessen become ich fehler 103. Was soll das den nun wieder bedeuten?

Willst du doch nicht mehr drucken? Und was sagt Google zu Fehler 103?


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:51 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