← →Laguna ©
	             
	            (2011-11-10 16:44)
		        [40]
		        
			     
> а зачем нужен размер всей формы? Достаточно знать размеры 
> клиентской области
Ну это я все из той оперы, что высчитав размер картинки подгоняю под нее форму, чтобы якобы красиво упакована картинка была при просмотре.
procedure TGladImageFrm.ShowImage;
begin
  Im_W := Image1.Picture.Width; {ширина картинки}
  Im_H := Image1.Picture.Height; {высота картинки}
  F_CW := GladImageFrm.ClientWidth; {800 - ширина формы}
  F_CH := GladImageFrm.ClientHeight;{600 - высота формы}
  if Im_W < Im_H then
   Ratio := Trunc(600 * Im_W/Im_H)
  else
   Ratio := Trunc(800 * Im_H/Im_W);
  if (Im_W < F_CW) and (Im_H < F_CH) then
   begin
     GladImageFrm.ClientWidth := Im_W;
     GladImageFrm.ClientHeight := Im_H;
   end
  else
   if (Im_W < F_CW) and (Im_H > F_CH) then
    GladImageFrm.ClientWidth := Trunc(Ratio)
  else
   if (Im_W > F_CW) and (Im_H < F_CH) then
    GladImageFrm.ClientHeight := Trunc(Ratio)
  else
   if (Im_W > F_CW) and (Im_H > F_CH) and (Im_W < Im_H) then
    GladImageFrm.ClientWidth := Trunc(Ratio)
  else
   if (Im_W > F_CW) and (Im_H > F_CH) and (Im_W > Im_H) then
    GladImageFrm.ClientHeight := Trunc(Ratio)
  else
   if (Im_W = F_CW) and (Im_H <> F_CH) then
    begin
       {Еще не придумал}
    end;
  left := (Screen.Width div 2) - (Width div 2);
  top  := (Screen.Height div 2) - (Height div 2);
end;
В этом коде tit максимайз не обработан, точнее размер картинки и формы при максимайзе.
		        

