Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Drucken mit Tabulator? (https://www.delphipraxis.net/126398-drucken-mit-tabulator.html)

Mattze 23. Dez 2008 17:16


Drucken mit Tabulator?
 
Hallo,

mit Printer.Canvas.Textout... schreibe ich einen Text an die gewünschte Position. Gut!
Allerdings wird ein Tabulator (#9) im Text nicht berücksichtigt, sprich "automatisch" ausgeführt.
Wie kann ich nun ein Text mit Tabulatoren (oder anderen Sonderzeichen) ordentlich drucken?

Schöne Weihnachten!
Mattze

DeddyH 23. Dez 2008 17:32

Re: Drucken mit Tabulator?
 
Ein Tabulator ist doch kein Sonder- sondern ein Steuerzeichen, wie willst Du das denn drucken?

Mattze 24. Dez 2008 11:03

Re: Drucken mit Tabulator?
 
Hallo,

eine äußerst korrekte und total zielführende Antwort.
Du kannst es meinetwegen auch "Birne" nennen.
Ich wüsste nur gern, wie man den Drucker beim Textdruck dazu bewegen könnte, das auch als "Steuerzeichen" zu erkennen und entsprechend ausführt.
(Nun frage aber bitte nicht, wie man ein Steuerzeichen ausführt!)

Übrigens: Eine Listbox auf dem Display macht es - z.B.!
(Und frage bitte nicht, was ich mit dem Display meine!)

Schöne Weihnachten!
Mattze

DeddyH 24. Dez 2008 11:25

Re: Drucken mit Tabulator?
 
Hast Du mal versucht, ESC oder BACKSPACE zu drucken? Na also. Dann bleibt also nur selber rechnen.

Reinhard Kern 24. Dez 2008 11:29

Re: Drucken mit Tabulator?
 
Zitat:

Zitat von Mattze
Hallo,

...
Wie kann ich nun ein Text mit Tabulatoren (oder anderen Sonderzeichen) ordentlich drucken?

Hallo,

Drucker mit eigenem Tabulator gab es mal in der Steinzeit - heutige (Seiten-) Drucker bekommen vom Treiber ein grafisches Abbild der Seite geliefert, und das Programm, das diese Grafik erzeugt, vulgo Druckertreiber, ist für die Interpretation von Steuerzeichen verantwortlich. D.h. wenn du die Druckgrafik selbst erzeugst: du musst den Text parsen und bei einem TAB den Startpunkt X für das nächste DrawText auf den Wert des nächsten TabStopps setzen (Y bleibt ja gleich bei HT = horiz. Tab).

Ich habe dafür mal eine Unit WinLineprinter oder so ähnlich geschrieben, die mit Text gefüttert wird und Zeilenvorschübe und Tabs durch entsprechende Positionsbefehle berücksichtigt, damit funktionierte ein Laserdrucker wie ein alter Zeilendrucker (z.B. Epson ESC/P auf HP Laser). Ist aber uralt, noch aus der Zeit vor Delphi 1, wird trotzdem noch verwendet. Der Drucker bekommt seinen Text per write und writeln.

Wo genau übrigens der nächste TabStopp liegt, ist eine ganz andere Frage, den muss man normalerweise auch erst programmieren, mit ESC-Sequenzen bei den alten Druckern und mit Windows Messages bei Listboxen.

Gruss Reinhard

Luckie 24. Dez 2008 11:30

Re: Drucken mit Tabulator?
 
Nimm die Methode DrawText von TCanvas. Ich meine, damit müsste es gehen.


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