30.09.2008, 11:41
общий
это ответ
Здравствуйте, Geb2003!
Попробуйте следующий код, использую у себя в проги:
var
Back: TBitMap; // картинка
Back.LoadFromFile(OpenPicture1.Dialog.FileName);
Image1.canvas.fillrect(Image1.canvas.cliprect);
image1.Canvas.StretchDraw(paintboxDestRect(Back),Back);
Приложение:
function paintboxDestRect(bmp:TBitMap): TRect;
var
w, h, cw, ch: Integer;
xyaspect: Double;
begin
w:= bmp.Width;
h:= bmp.Height;
cw:= vdmonitor.image1.ClientWidth;
ch:= vdmonitor.image1.ClientHeight;
if ((w > cw) or (h > ch)) then
begin
if (w > 0) and (h > 0) then
begin
xyaspect := w / h;
if w > h then
begin
w:= cw;
h:= Trunc(cw / xyaspect);
if h > ch then // woops, too big
begin
h:= ch;
w:= Trunc(ch * xyaspect);
end;
end
else
begin
h:= ch;
w:= Trunc(ch * xyaspect);
if w > cw then // woops, too big
begin
w:= cw;
h:= Trunc(cw / xyaspect);
end;
end;
end
else
begin
w:= cw;
h:= ch;
end;
end;
with Result do
begin
Left:= 0;
Top:= 0;
Right:= w;
Bottom:= h;
end;
OffsetRect(Result, (cw - w) div 2, (ch - h) div 2);
end;
Об авторе:
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru