Показать сообщение отдельно
  #4  
Старый 26.06.2019, 19:24
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вообще, просто заведи себе коэф. "увеличения".
Пусть у тебя оригинальная картинка (ее размер) лежит в ImgSize : TPoint (просто удобно использовать данный тип). Тогда:
Код:
type
  TForm1 = class(TForm)
  ...
    Image1 : TImage;
  ...
  private
    ImgScale : Double; // default 1.0 - set in OnCreate
    ImgSize : TPoing; // Width and Height of original image, set when load image
  end;
...
procedure TForm1.ResizeImage;
begin
  Image1.Width := Round(ImgSize.x*ImgScale);
  Image1.Height := Round(ImgSize.y*ImgScale);
end;

procedure TForm1.btZoomInClick(Sender : TObject);
begin
  ImgScale := ImgScale * 2;
  ResizeImage;
end;

procedure TForm1.btZoomOutClick(Sender : TObject);
begin
  ImgScale := ImgScale / 2;
  ResizeImage;
end;
Ответить с цитированием