05. februar 2006 - 04:54
Der er
1 kommentar og
1 løsning
set billed's width
Denne kode sætter billeds height til 1200 også retter width'en til...
procedure TForm2.FormResize(Sender: TObject);
var
tal: Double;
begin
image1.Height := 1200;
tal := image1.Height / image1.Picture.Height;
image1.Width := round(image1.Picture.Width * tal);
image1.Left:=1;
Image1.Top:=0;
end;
Hvordan skal man skrive hvis det nu er omvendt at man gerne vil skrive width'en også rette height'en til?
05. februar 2006 - 09:29
#1
Har lige lavet denne, tror nok den virker:
Hvis du vil sætte bredden til f.eks. 800 skriver du:
SetWH(800,0,Image1);
Hvis du vil sætte højden til f.eks. 1000 skriver du:
SetWH(0,1000,Image1);
---------------
procedure SetWH(Width, Height: Integer; Image : TImage);
var
Ratio: Double;
AHeight : Integer;
AWidth : Integer;
begin
Ratio := Image.Picture.Width / Image.Picture.Height;
if Height=0 then
begin
AHeight := Round(Width / Ratio);
AWidth := Width;
end
else
begin
AWidth := Round(Height * Ratio);
AHeight := Height;
end;
Image.Width := AWidth;
Image.Height := AHeight;
end;