// Ein Image wird
ausgedruckt. X und Y stellen die Position in Pixeln uses Printers; procedure ImageDruck(Image: TImage; x, y: integer; scale: double); var scaleX, scaleY: double; dc: HDC; function rech(i: integer; scl1, scl2: double): integer; begin result := abs(round(i * scl1 * scl2)); end; begin dc := GetDC(0); with Printer do begin BeginDoc; try scaleX := GetDeviceCaps(Handle, logPixelsX) / GetDeviceCaps(dc, logPixelsX); scaleY := GetDeviceCaps(Handle, logPixelsY) / GetDeviceCaps(dc, logPixelsY); x := rech(x, scaleX, 1); y := rech(y, scaleY, 1); Canvas.StretchDraw(rect(x, y, x + rech(Image.picture.Width, scaleX, scale), y + rech(Image.Picture.Height, scaleY, scale)), Image.Picture.Graphic); finally EndDoc; ReleaseDC(0, dc); end; end; end; // Beispielaufruf procedure TForm1.Button5Click(Sender: TObject); begin ImageDruck(Image1, Image1.left, Image1.top, 1.05); end; |
Zugriffe seit 6.9.2001 auf Delphi-Ecke