![]() |
Drucken eines Panels (skaliert)
Hallo,
ich bräuchte noch einmal Hilfe: Ich habe auf einem Panel verschiedene Elemente. Daneben ist ein Button "Drucken". Dieser Button ruft jetzt den Printdialog auf, der das gesamte Panel drucken soll. Habe gegooglet und folgende Variante möchte ich benutzen:
Delphi-Quellcode:
Das klappt soweit auch, doch ist das Ergebnis nicht in Ordnung:Procedure TForm1.BildAusSchnitt(hWND: HWND; iLeft, iTop, iWidth, iHeight: integer); var c: TCanvas; begin BringWindowToTop(hWND); c:= TCanvas.Create; c.Handle:= GetWindowDC(hWND); try Printer.Orientation:=polandscape; printer.BeginDoc; printer.Canvas.CopyRect(Rect(0, 0, iWidth* 10, iHeight* 10), c, Rect(iLeft, iTop, iLeft+ iWidth, iTop+ iHeight)); printer.EndDoc; finally ReleaseDC(hWND, c.handle); c.Free; end; end; Man sieht nur die Hälfte, da das Panel wahrscheinlich zu groß ist (Mehr als 1000 Pixel breit) 1.: Wie kann ich den Druck so optimieren, dass das Panel automatisch auf die Größe des Blattes "verkleinert" wird? 2.: Ich möchte gerne über den im Dialog ausgewählten Drucker drucken. Was muss ich dafür noch tun? Liebe Grüße! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 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