AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Printer Canvas und DrawText

Ein Thema von Clemens Uhlenhut · begonnen am 26. Nov 2013 · letzter Beitrag vom 25. Dez 2013
Antwort Antwort
Clemens Uhlenhut

Registriert seit: 26. Nov 2013
3 Beiträge
 
#1

Printer Canvas und DrawText

  Alt 26. Nov 2013, 16:57
Delphi-Version: 7
Hallo!

Ich stelle die Frage mal einfach falls es auch eine einfache Antwort gibt...
Ich habe eine Printer Canvas und kann problemlos mit

Code:
Printer.Canvas.TextOut()
Text auf dieser ausgeben. Versuche ich jedoch das gleiche mit zB

Code:
DrawText(Printer.Canvas.Handle, PChar(txt), -1, rect, DT_LEFT or DT_WORDBREAK)
schaffe ich es nicht den Text auf die Seite zu drucken. Wobei rect mit den Koordinaten gefüllt ist, die mir ein vorheriger Aufruf von DrawText() unter Verwendung von DT_CALCRECT geliefert hat.

Habe ich was übersehen?

Vielen Dank und Grüße
Clemens
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#2

AW: Printer Canvas und DrawText

  Alt 26. Nov 2013, 17:27
Was stehen für Werte in rect ?

Liegen die Werte auch innerhalb des Zeichenbereichs? (vorallem bei teilweise links daneben oder darüber wird gerne mal nicht gezeichnet)

Und gibt MSDN-Library durchsuchenDrawText eine Fehlermeldung zurück? (siehe Return Value > http://msdn.microsoft.com/en-us/libr...sktop/dd162498)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Clemens Uhlenhut

Registriert seit: 26. Nov 2013
3 Beiträge
 
#3

AW: Printer Canvas und DrawText

  Alt 28. Nov 2013, 20:11
Danke für die Antwort. Als Koordinaten habe ich die gleichen wie für TextOut() verwendet.
Bezüglich Fehlercode habe ich wirklich vergessen darauf zu achten. Danke für den Hinweis, ich kann dann am Montag mal sehen was da zurück kommt... Vielleicht auch gleich mal GetLastError() strapazieren.

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Printer Canvas und DrawText

  Alt 29. Nov 2013, 03:00
Was für Werte stehen in rect (width, height)?

Versuch es mal damit, die Anzahl der Zeichen zu übergeben
DrawText( Printer.Canvas.Handle, PChar( txt ), Length( txt ), rect, DT_LEFT or DT_WORDBREAK );
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Clemens Uhlenhut

Registriert seit: 26. Nov 2013
3 Beiträge
 
#5

AW: Printer Canvas und DrawText

  Alt 23. Dez 2013, 14:30
Anzahl der Zeichen haben ich auch schon mal angegeben. Ändert leider auch nichts.

Ich rufe zuerst DrawText() mit DT_CALCRECT auf und übernehme die Werte für rect. Habe auch schon probiert rect.top und rect.bottom zu vertauschen, da top > bottom geliefert wird. Als Rückgabe von DrawText() erhalte ich dann zB -30 wenn height -30 war.
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#6

AW: Printer Canvas und DrawText

  Alt 24. Dez 2013, 01:04
Hallo,

Zitat:
Ich stelle die Frage mal einfach falls es auch eine einfache Antwort gibt...
besser ist: Stell Deine Frage so, dass hilfswillige (die offenbar zahlreich vorhanden sind, aber mit der langen Stange im Nebel stochern müssen und am Ende doch nur raten können) Futter haben, an der sie sich abarbeiten können (Stichwort: Quellcode - was machst Du eigentlich).

Ich habe mit der, von Dir beschriebenen Vorgehensweise keine Probleme Text (oder auch andere Inhalte) auf dem Drucker auszuwerfen. Wenn es bei Dir nicht funktioniert, dann zeigt doch einfach mal was Du tust.

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Sailor

Registriert seit: 20. Jul 2008
Ort: Balaton
112 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Printer Canvas und DrawText

  Alt 24. Dez 2013, 13:35
Ruf mal Settextalign auf, eventuell ist die Baseline auf taTop gesetzt. Dann wird zwar gezeichnet, aber Du siehst nix.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

AW: Printer Canvas und DrawText

  Alt 25. Dez 2013, 01:46
Und wenn du es nicht schon hast, installiere zum Testen einen PDF Drucker.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 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