![]() |
Druck zu klein mit PaintTo
D7PE PaintTo und F1. Dort erscheint ein Beispiel wie man PageControl
ausdrucken kann. Druckt leider nicht, ich mußte 5 Zeilen verschieben. Jetzt erfolgt ein Ausdruck,aber sehr klein. Mit den vielen Beispielen hier im Forum habe ich es nicht hinbekommen. Wer kann mir Tipps geben, wie ich den Ausdruck größer bekomme. Es geht zwar bei mir um ein StringGrid. Ich bekomme dort den Ausdruck komplett über mehere Seiten, aber eben auch klein. Viele Dank im Voraus Günter procedure TForm1.Button1Click(Sender: TObject); var I, Start, Stop: Integer; begin // Folgende 5 Zeilen in den Printdialog verschoben, da hier keine Funktion {PrintDialog1.Options := [poPageNums, poSelection]; PrintDialog1.FromPage := 1; PrintDialog1.MinPage := 1; PrintDialog1.ToPage := PageControl1.PageCount; PrintDialog1.MaxPage := PageControl1.PageCount; } if PrintDialog1.Execute then begin PrintDialog1.Options := [poPageNums, poSelection]; PrintDialog1.FromPage := 1; PrintDialog1.MinPage := 1; PrintDialog1.ToPage := PageControl1.PageCount; PrintDialog1.MaxPage := PageControl1.PageCount; { Ausgewählten Druckbereich ermitteln } with PrintDialog1 do begin if PrintRange = prAllPages then begin Start := MinPage - 1; Stop := MaxPage - 1; end else if PrintRange = prSelection then begin Start := PageControl1.ActivePage.PageIndex; Stop := Start; end else { PrintRange = prPageNums } begin Start := FromPage - 1; Stop := ToPage - 1; end; end; { Jetzt die Seiten drucken } with Printer do begin BeginDoc; for I := Start to Stop do begin PageControl1.Pages[I].PaintTo(Handle, 10, 10); if I <> Stop then NewPage; end; EndDoc; end; end; end; end. |
Re: Druck zu klein mit PaintTo
Moin Moin,
vor kurzem ging es um ein ähnliches Thema, allerdings um ein TGraphic. Kann ja sein, dass dir ![]() Problematisch kann es allerdings werden, wenn der Ausdruck über mehrere Seiten erfolgt. Anstatt
Delphi-Quellcode:
müsste man dann wohl
Printer.Canvas.Draw(iLeft, iTop, Graphic);
Delphi-Quellcode:
schreiben.
PageControl1.Pages[I].PaintTo(Handle, 10, 10);
|
Re: Druck zu klein mit PaintTo
Vielen Dank bitsetter für Deine Antwort.
Mit dem Austausch zu dieser Druckroutine kommt der Ausdruck in Originalgröße. [delphi] { Jetzt die Seiten drucken } Printer.BeginDoc; begin for I := Start to Stop do begin SetMapMode( printer.canvas.handle, MM_ANISOTROPIC ); SetWindowExtEx(printer.canvas.handle, GetDeviceCaps(canvas.handle, LOGPIXELSX), GetDeviceCaps(canvas.handle, LOGPIXELSY), Nil); SetViewportExtEx(printer.canvas.handle, GetDeviceCaps(printer.canvas.handle, LOGPIXELSX), GetDeviceCaps(printer.canvas.handle, LOGPIXELSY), Nil); PageControl1.Pages[I].PaintTo( printer.canvas.handle, 10, 10 ); // Rand,oben,links if I <> Stop then Printer.NewPage; end; Printer.EndDoc; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 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-2025 by Thomas Breitkreuz