Avatar billede safl Nybegynder
18. oktober 2002 - 03:00 Der er 6 kommentarer og
1 løsning

Billedprint (konstant størrelse)

hello!
Jeg har brug for hjælp til nedenstående kode, det der mangler er at bredden og højden skal være konstanter der resulterer i at det udprintede billede vil være 12cm højt og 12cm bredt.

var
  ScaleX, ScaleY: Integer;
  R: TRect;
begin
  Printer.BeginDoc;
  with Printer do
  try
    ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
    ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
    R := Rect(0, 0, 400 * ScaleX, 400 * ScaleY);
    Canvas.StretchDraw(R, CDimage.Picture.Graphic);
  finally
    EndDoc;
  end;
end;

Det er værdierne 400 der skal sættets til noget der variabelt passer ligegyldigt printer opløsning og billed opløsning.

på forhånd tak
safl
Avatar billede cms Nybegynder
21. oktober 2002 - 23:56 #1
function MillimetersToDeviceUnitsWidth(DC: THandle; Millimeters: Extended): Integer;
begin
  Result := Round(Millimeters * GetDeviceCaps(DC, HorzRes) / GetDeviceCaps(DC, HorzSize));
end;

function MillimetersToDeviceUnitsHeight(DC: THandle; Millimeters: Extended): Integer;
begin
  Result := Round(Millimeters * GetDeviceCaps(DC, VertRes) / GetDeviceCaps(DC, VertSize));
end;

R := Rect(100, 100, MillimetersToDeviceUnitsWidth(Handle, 120), MillimetersToDeviceUnitsHeight(Handle, 120));
Avatar billede safl Nybegynder
22. oktober 2002 - 00:10 #2
Hvorfor de 100?
Avatar billede cms Nybegynder
22. oktober 2002 - 00:13 #3
Årh, alle printere har jo en venstre margin som de ikke kan printe ud på.
Avatar billede safl Nybegynder
22. oktober 2002 - 00:19 #4
Jepper i know men du glemte at tilføje det til de andre kordinater fordi udprintet bliver 100 mindre end det skulle.

jeg har ændret lidt i din kode som var næsten perfekt og du fortjener uden tvivl pointene, tusind tak for svaret :)
Avatar billede cms Nybegynder
22. oktober 2002 - 00:24 #5
Det var så lidt :) Tak for points
Iøvrigt kan GetDeviceCaps også fortælle dig hvor stor den fysiske margin er
Avatar billede safl Nybegynder
22. oktober 2002 - 00:37 #6
Ok cool! Jeg har også brug for den fysiske margen men jeg havde egentlig bare tænkt mig at sætte den på Rect og sætte 120+margen :)
Avatar billede cms Nybegynder
22. oktober 2002 - 19:38 #7
=)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester