Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2012, 04:00   #1
JoLan
Delphi XE7
Пользователь
 
Аватар для JoLan
 
Регистрация: 26.07.2010
Сообщений: 74
По умолчанию Изменение размера картинки при ресайзе формы

Доброе утро.

Есть форма, на которой лежит ScrollBox. На ScrollBox положен TImage, в который грузятся некие изображения.

При изменении размера формы нужно, чтобы картинка меняла свои размеры пропорционально, при этом не превышая своих базовых размеров:

Код:
var BaseW, BaseH: Integer;
...

procedure CheckSize(Area: TScrollBox; Target: TImage);
var Divider: Real;
begin
  if (Target.Width <= BaseW)or(Target.Width > Area.Width) then begin
    Target.Width := Area.Width;
    Divider := BaseW / Target.Width;
    Target.Height := Round(BaseH / Divider);
  end;
end;
Данная процедура выполняется на событии FormResize.
Базовые размеры вбиваются при загрузке картинки.

Но при резком увеличении ширины формы (дёрг мышкой) картинка увеличивает свои размеры больше, чем заданы базовые значения. Как можно решить проблему?
Изображения
Тип файла: jpg base01.jpg (37.5 Кб, 146 просмотров)
Тип файла: jpg base02.jpg (46.9 Кб, 136 просмотров)

Последний раз редактировалось JoLan; 31.07.2012 в 04:07.
JoLan вне форума Ответить с цитированием
Старый 31.07.2012, 07:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А просто сделать картинку Align:=alClient?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.07.2012, 15:07   #3
JoLan
Delphi XE7
Пользователь
 
Аватар для JoLan
 
Регистрация: 26.07.2010
Сообщений: 74
По умолчанию

Удалось пофиксить, выставив в процедуре загрузки картинки в TImage

Код:
Target.Constraints.MaxWidth := BaseW;
Target.Constraints.MaxHeight := BaseH;
JoLan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пропорциональное изменение размера картинки 2902 Microsoft Office Excel 1 26.03.2011 13:34
Изменение размера формы. waterya Общие вопросы Delphi 2 18.06.2010 16:38
изменение размера формы maksim_serg Microsoft Office Excel 0 16.04.2010 04:22
Изменение размера картинки denisov PHP 3 24.02.2010 18:31
Изменение размера картинки Борис Низов PHP 6 09.12.2007 16:26