Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Position für Printer (https://www.delphipraxis.net/74592-position-fuer-printer.html)

Privateer3000 6. Aug 2006 00:49


Position für Printer
 
Hi folks,

mit dieser funktion lass ich ein Richedit ausdrucken:
Delphi-Quellcode:
for KR:=0 to recid.lines.Count do
  begin
  Printer.Canvas.TextOut(0,E,recid.lines[KR]);
  end;
nun benötige ich die genaue Position von Top
weil darunter noch ein Textout soll.
Wie erhalte ich den Wert wo die zeilen des Edits enden?

Privateer3000 6. Aug 2006 17:39

Re: Position für Printer
 
noch eine ergänzende Frage:
muss vor dem TextOut unbedingt ein TextRect gesetzt werden?

DGL-luke 6. Aug 2006 17:46

Re: Position für Printer
 
Ich würde das mit der API-Funktion DrawText machen. Mit den entsprechenden Flags kannst du das richtig formatieren und bekommst auch die ausmaße zurück.

Dir ist aber klar, dass so die Formatierung des Richedits (farben etc.) nicht übernommen wird, oder?

Privateer3000 6. Aug 2006 18:14

Re: Position für Printer
 
Zitat:

Zitat von DGL-luke
Ich würde das mit der API-Funktion DrawText machen.

Das kenn ich nun garnicht. Wie wird das gemacht?
Zitat:

Dir ist aber klar, dass so die Formatierung des Richedits (farben etc.) nicht übernommen wird, oder?
Ja, weiß ich. Würde das mit o.g. API anders sein?

mfg

DGL-luke 6. Aug 2006 19:20

Re: Position für Printer
 
nö. wärs nicht. ;)

DrawText is ne Standard-GDI-Funktion, die sollte in der Unit "Windows" statisch referenziert sein. Die Canvas-Funktionen greifen auf die zum großen Teil zurück, und die Dokumentation sollte auch stimmen. (Delphi 6... hmm... kein PSDK? MSDN-Library durchsuchenDrawText)

Delphi-Quellcode:
function DrawText(hDC: HDC; lpString: PChar; nCount: Integer; var lpRect: TRect; uFormat: UINT): Integer; stdcall;
hDC könnte zum Beispiel Printer.Canvas.handle sein, string is klar, nCount: wie viele zeichen des strings übernehmen?, lpRect kannst du den Bereich angeben, der verwendet werden kann, und bekommst den wirklich verwendeten bereich zurück, und in uFormat kannst du (per OR-Verknüpfung) einige Flags angeben, die sehr hilfreich sind, z.B. DT_WORDWRAP.

Privateer3000 6. Aug 2006 20:03

Re: Position für Printer
 
Danke
ich habs etwas anders gelöst.
Ich habe den Richedit in TSrings
umgewandelt und als einzelne Strings
in das ohnehin vorhandene Grid unten
angefügt.
So druckt wird das Grid UND das Richedit
gedruckt.

Danke nochmals


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