Вниз
Скачать: CL | DM;

Предосмотр картинки на форме   Найти похожие ветки 

 
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 максимайз не обработан, точнее размер картинки и формы при максимайзе.



Страницы: 1 2 вся ветка

Скачать: CL | DM;



Память: 0.52 MB
Время: 0.007 c
15-1319888631
flur
2011-10-29 15:43
2012.02.19
comport


6-1251739894
bodun
2009-08-31 21:31
2012.02.19
WinSock - UDP протокол: подскажите статейку или пример!


1-1286340346
aha
2010-10-06 08:45
2012.02.19
вывод данных в XLS виде. Есть необходимость вывода данных


2-1320868060
Max
2011-11-09 23:47
2012.02.19
как присвоить radiobutton к radiogrup


15-1320125891
alexdn
2011-11-01 08:38
2012.02.19
3d визуализация




   Наверх