TImage im Querformat drucken
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Delphi-Gemeinde
Ich habe ein Problem. Und zwar habe ich ein Programm geschrieben, das lineare Funktionen berechnet und diese dann ausdruckt. Das Programm errechnet die lineare Funktion, und stellt sie in einem TImage dar, das ich zusätzlich noch mit einem Koordinatensystem ausgestattet habe. So klappt alles einwandfrei, druckt auch aus aber leider im Hochformat, sodass immer nur ein Teil der linearen Funktion und des Koordinatensystems angezeigt wird. Das ist meine Druckroutine:
Delphi-Quellcode:
Wie kann ich nun einstellen, dass der Drucker das TImage im Querformat ausdruckt?
with Printer do
begin BeginDoc; try ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch; ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch; RR := Rect(0, 0, Koordinatensystem.picture.Width * scaleX, Koordinatensystem.Picture.Height * ScaleY); Canvas.StretchDraw(RR, Koordinatensystem.Picture.Graphic); finally EndDoc; //Methode EndDoc beendet den aktuellen Druckauftrag und schließt die end; end; Und zum Schluss noch das Programm für euch: |
Re: TImage im Querformat drucken
Hallo,
wenn du in deinem TImage auf das Bitmap zeichnest, könntest du das Bild mit PlgBlt() drucken.
Delphi-Quellcode:
var
Points: array[0..2] of TPoint; scaleX, scaleY: integer; begin Printer.BeginDoc; try with Koordinatensystem do begin ScaleX := GetDeviceCaps(Printer.Handle, logPixelsX) div PixelsPerInch; ScaleY := GetDeviceCaps(Printer.Handle, logPixelsY) div PixelsPerInch; Points[1] := Point(Picture.Graphic.Height* scaleX, Picture.Graphic.Width* scaleY);//rechts oben Points[0] := Point(Picture.Graphic.Height* scaleX, 0);//links oben Points[2] := Point(0, 0);//links unten PlgBlt(Printer.Canvas.Handle, Points, Picture.Bitmap.Canvas.Handle, 0, 0, Picture.Graphic.Width, Picture.Graphic.Height, 0, 0, 0); end; finally Printer.EndDoc; end; |
Re: TImage im Querformat drucken
Ich habs jetzt mit ein bisschen Hilfe so gelöst:
Delphi-Quellcode:
Gruß
var
ScaleX, ScaleY: Integer; RR: TRect; begin begin with Printer do begin BeginDoc; try ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch; ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch; RR := Rect(0, 0, Koordinatensystem.picture.Width * scaleX, Koordinatensystem.Picture.Height * ScaleY); Canvas.StretchDraw(RR, Koordinatensystem.Picture.Graphic); finally EndDoc; end; Orientation :=poLandscape; //das hat gefehlt... Jetzt fehlts nicht mehr *freu* end; end; Soapy |
Re: TImage im Querformat drucken
Herzlich Willkommen in der DP :dp:
|
Re: TImage im Querformat drucken
Dankeschön...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 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