Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - TPrinter druckt nur in einer zeile


Maisinator - Mo 21.09.09 16:00
Titel: TPrinter druckt nur in einer zeile
hallo,

ich habe mir das printer tutorial von backslash durchgelsen und es dann mal ausprobiert (http://www.delphi-library.de/viewtopic.php?t=71392). funktioniert alles super, nur es wird halt nur in einer zeile gedruckt, auch wenn im text absätze eingebaut sind. was kann ich dagegen machen?

PS: Text auf Textbreite zurechtschneiden benutze ich nicht, da ich den text in memo-breite drucken möchte.


Delphi-Quelltext
1:
2:
3:
4:
begin
Printer.BeginDoc;
Printer.Canvas.TextOut(10,10, Memo1.Text);
Printer.EndDoc.


THX

Moderiert von user profile iconNarses: URL-Tag hinzugefügt.


BenBE - Do 24.09.09 11:19

Text Zeilenweise aus Memo lesen und zeilenweise auf das Canvas schreiben ...


Maisinator - Do 24.09.09 15:20

danke, hab ich schon versucht, aber wie schreib ich das zeilenweise aufs canvas? mit canvas.textout funktioniert das ja nicht...


FinnO - Do 24.09.09 16:15

Memo1.lines sollte dir da weiterhelfen. Diese mit einer For-Schleife abklappern und einzeln mit TextOut aufs Canvas schreiben.


BenBE - Do 24.09.09 17:07

Und für die Zeilenhöhe gibt's im Canvas TextHeight und TextExtend (oder wie die hieß).


Delete - Do 24.09.09 21:40

user profile iconMaisinator hat folgendes geschrieben Zum zitierten Posting springen:
danke, hab ich schon versucht, aber wie schreib ich das zeilenweise aufs canvas? mit canvas.textout funktioniert das ja nicht...

Rat mal für was die ersten beiden Parameter der Funktion TextOut stehen. Und wenn du nicht raten willst, ändere sie einfach mal oder guck in der Hilfe nach.


Maisinator - Fr 25.09.09 22:02

danke, habe es schon hinbekommen. mich erstaunt nur, dass erstmal 2-3 tage garkein post auf meine frage kam und dann auf einmal mehrere^^


BenBE - Sa 26.09.09 11:23

Och, manchmal gehen Fragen etwas unter, bzw. werden übersehen. Sobald dann aber eine Antwort kommt, spornt das dann auch andere an. Daher darf nach mehr als 24 Stunden (in dringenden Fällen) auch (einmal!) gepusht werden ...