Entwickler-Ecke
Sonstiges (Delphi) - Problem mit Drucker
Unzi - So 16.03.03 11:25
Titel: Problem mit Drucker
Hallo Leute,
ich habe folgendes Problem: Wenn ich ein Dokument mit dieser Prozedur:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.Drucken2Click(Sender: TObject); var i: Integer; begin with Printer do begin BeginDoc; Title:=Form1.Caption; Canvas.Font:=Memo1.Font; for i := 0 to Memo1.Lines.Count do Canvas.TextOut(200,200 + (i * Canvas.TextHeight(Memo1.Lines[i])),Memo1.Lines.Strings[i]); Canvas.Font:=Memo2.Font; for i := 0 to Memo2.Lines.Count do Canvas.TextOut(4000,200 + (i * Canvas.TextHeight(Memo2.Lines[i])),Memo2.Lines.Strings[i]); Canvas.Brush.Color := clBlack; EndDoc; end; end; |
drucken will, klappt das beim ersten Durchlauf auch noch ganz gut. Beim zweiten Mal hingegen werden bei mir nur noch schwarze Kästchen von der Größe des Textes ausgegeben. Kann mir jemand sagen, woran das liegen könnte? Ach ja, wenn ich das Programm neu starte, wird auch beim ersten Mal alles wieder normal gedruckt. Danke im voraus.
Unzi
Moderiert von
Tino: Code-Tags hinzugefügt.
AndyB - So 16.03.03 12:41
Das liegt daran, dass die Printer.Canvas ihre Einstellungen merkt. Wenn du also am Ende deiner Routine die Brush-Farbe auf clBlack setzt, wird automatisch auch Brush.Style := bsSolid gesetzt. Um das beim nächsten Durchlauf wieder rückgängig zu machen, solltest du vor dem Drucken (aber nach BeginDoc) Pen, Brush und Font auf deine gewünschten Werte setzen. Somit ist es dann egal, wie diese Eigenschaften nach dem Druck eingestellt sind.
Cash - Mo 17.03.03 17:41
Gibt es denn nicht irgendeine Procedure, die es ermöglicht die Seite oder Sonstiges mehrmals so zu drucken, ohne die Einstellungen jedes mal zu verändern?
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!