Entwickler-Ecke
Sonstiges (Delphi) - Drucker wirft 100 leere Seiten aus
ACID - Fr 24.06.05 15:25
Titel: Drucker wirft 100 leere Seiten aus
:shock:
Hilfe, Hilfe!!!
Ich habe versucht mit
Delphi-Quelltext
1: 2:
| if printer.Canvas.TextHeight(text1)>aoah then aoah:=printer.Canvas.TextHeight(text1); |
Die höhe Textes in Pixeln die auf dem Drucker erscheinen werden zu ermitteln.
Diese anweisung liegt in einer schleife.
Jedesmal wenn diese 2 Zeilen vom Programm abgearbeitet werden, bekomme ich pro Zeile ein leeres Blatt.
Wie kann ich das anders schreiben damit dies nicht mehr passiert?
Sitze schon seit 9 Stunden vorm Rechner und Programmiere, so langsam geht mir die Puste aus.
Bitte helft mir schnell damit ich Feierabend machen kann.
Moderiert von
Christian S.: Topic aus CLX / Delphi Language (Object-Pascal) verschoben am Fr 24.06.2005 um 15:41
Moderiert von
Tino: Titel überarbeitet.
JRegier - Fr 24.06.05 15:44
Titel: Re: Hilfe Drucker wirft 100 leere Seiten aus!!!
ACID hat folgendes geschrieben: |
:shock:
Hilfe, Hilfe!!!
Ich habe versucht mit
Delphi-Quelltext 1: 2:
| if printer.Canvas.TextHeight(text1)>aoah then aoah:=printer.Canvas.TextHeight(text1); |
|
ich kann nicht ganz nachvollziehen und werd auch aus diesem kleinen stückchen Code
nicht ganz schlau und überhaupt vom Drucken auch noch keine Ahnung aber wie es aussieht
hast du zuweisungsrichtung vieleicht vertauscht?
So ginge es evtl.
Delphi-Quelltext
1: 2:
| if printer.Canvas.TextHeight(text1)>aoah then printer.Canvas.TextHeight(text1) := aoah; |
Und noch was, beim Drucker ist eine höhere Auflösung als aufm Monitor vieleicht einen höheren
Wert setzen?
ACID - Fr 24.06.05 16:01
Der Drucker hat ne andere auflösung, das ist mir schon klar.
Deshalb möchte ich den wert aoah haben weil der mir sagt wie hoch der text1 auf dem drucker in Pixeln ist.
Mit diesem wert berechne ich dann die Zeilenhöhe für die Ausgabe.
An dieser stelle soll noch nichts ausgegebne werden.
Und Printer.begindoc folgt in meinem Programm erst viel Später, deshalb wundere ich mich ja auch das er lauter leere Seiten rausgibt.
Text1 beziehe ich aus einer MemoBox.
Hier nochmal die ganze Schleife
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| for xx:=0 to listview2.Items.Count-1 do begin text1:=listview2.Items.Item[xx].SubItems[11]; if printer.Canvas.TextHeight(text1)>aoah then aoah:=printer.Canvas.TextHeight(text1); end; |
Nun habe ich auch feststellen müssen das aoah immer der letzte wert ist der in der schleife vorkommt, obwohl ja eigentlich nur der größte drinn stehen sollt.
Ach so bevor ich es Vergesse Ich Arbeite mit QPrinters. Siehe
http://www.delphi-forum.de/topic_Drucker+einstellungen+wie+und+wo_44143.html oder
http://www.delphi-forum.de/topic_Wie+Drucker+zuweisen_44155.html.
JRegier - Fr 24.06.05 17:10
Das mit den leeren Seiten ist mir auch in Java bei ersten Druckversuchen passiert!
Aber da hatte ich nicht richtig das Canvas Object (Graphics in Java) an Drucker geleitet
und bei versuchen auch eine Schleife programmiert wo einzelnen Zeilen ausgegeben werden
und sowohl auf dem Bildschirm als auch auf den Drucker und weil die Ausgabe nur einmal
auf dem Bildschirm kam und beim neuzeichnen der Bildschirmausgabe keine Ausgabe kamm
hatte ich den Zeiger in der Liste auf die erste Zeile wieder gesetzt und dabei wurden
an den Drucker ganz viele Leere Seiten geschickt in der "Endlosschleife"
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!