// 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





