![]() |
Memofeld inhalt drucken
Hallo,
Wie kann man den den Inhalt(Text) eines Memofeldes drucken ? |
Re: Memofeld inhalt drucken
Hallo.
z.B. so:
Delphi-Quellcode:
Dazu musst du die Unit Printers in die uses aufnehmen.
Printer.BeginDoc;
Printer.Canvas.TextOut(0, 0, Memo1.Lines.Text); Printer.EndDoc; |
Re: Memofeld inhalt drucken
Ja danke, das funktioniert.
Aber leider druckt er mir alles in eine reihe kann man da noch was machen ? |
Re: Memofeld inhalt drucken
Du meinst, dass er keinen automatischen Zeilenumbruch macht, oder?
Lösung 1: Nimm ein RichEdit-Control und drucke mit dessen Print-Methode Lösung 2: Nimm ein TextFile, weise es mit AssignPrn dem Drucker zu und drucke jede Zeile mit WriteLn dorthin Es gibt auch noch 'ne Menge anderer Möglichkeiten (DrawText benutzen usw.). |
Re: Memofeld inhalt drucken
Zitat:
Aber im Memo habe ich jetzt z.B 3 Zeilen text, so soll er mir das auch drucken, also er soll mir einen zeilenumbruch m achen |
Re: Memofeld inhalt drucken
Ungetestet, aber so ähnlich könnte es gehen ;):
Delphi-Quellcode:
var i: Integer; printer.BeginDoc; for i := 0 to memo1.lines.count -1 do Begin printer.canvas.textout( 0, i * printer.Canvas.TextHeight( Memo1.Lines[i] ) , Memo1.Lines[i]); End; printer.EndDoc; |
Re: Memofeld inhalt drucken
danke, funktioniert einwandfrei :)
|
Re: Memofeld inhalt drucken
Du kannst auch so ein TMemo ausdrucken:
Delphi-Quellcode:
Var
Zeile: Integer; PrintText: TextFile; begin AssignPrn(PrintText); Rewrite(PrintText); Printer.Canvas.Font := Memo1.Font; for Zeile := 0 to Memo1.Lines.Count - 1 do Writeln(PrintText, Memo1.Lines[Zeile]); CloseFile(PrintText); |
Re: Memofeld inhalt drucken
Ja, so würde es auch gehen. :mrgreen:
|
Re: Memofeld inhalt drucken
Gibt es denn nirgends eine einfachere Kapselung von Druckern? Wo ich einfach so eine Art "WriteLn"Befehl aufrufen kann, und der druckt das dann automatisch, mit Zeilenumbruch etc?
|
Re: Memofeld inhalt drucken
Zitat:
Du musst halt vorher eine Text-Variable deklarieren und sie dem Drucker zuweisen (AssignPrn). |
Re: Memofeld inhalt drucken
Hab ich schon gelesen, aber sonderlich elegant ist das halt IMHO nicht. (Da kann aber smart natürlich nichts für. :wink: )
|
Re: Memofeld inhalt drucken
Zitat:
|
Re: Memofeld inhalt drucken
Weil da getrennt wird, was eigentlich zusammen gehört. Ich hab dann die Printer-Klasse und diese virtuelle Textdatei. Warum die Trennung? Ich fänd es halt logischer, wenn das alles in einer Klasse stünde. Außerdem: Macht der Drucker jetzt auch automatisch die Zeilenumbrüche?
|
Re: Memofeld inhalt drucken
Nimm doch einfach n "RichEdit" da haste n .Print bei :mrgreen:
|
Re: Memofeld inhalt drucken
Ich will aber ja mehr als nur ein Richedit drucken: Edits und vom Programm erstellte Strings sind ja auch noch dabei.
Man kann sich so eine Klasse ja auch ganz einfach selber schreiben. Es wundert mich nur vom Prinzip her, dass Borland sowas nicht mitliefert. Finde ich, ehrlich gesagt, etwas schlampig. Aber ich fürchte wir werden ein bisschen OT |
Re: Memofeld inhalt drucken
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 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 by Thomas Breitkreuz