• 0
ENERGY

Как сделать аналог Autosize в TImage

Вопрос

Есть картинка-шапка (лого). Wrap Mode = Fit.

При изменении размера формы (ширины), меняется размер картинки внутри Timage, но не меняется размер самого TImage.

Из за этого неправильно позиционируются контролы под Timage (точнее они не меняют позицию), к примеру при уменьшении ширины  формы остаются большие пустые куски, из за того что картинка уменьшилась, а сам Timage  нет (он должен сменить Height самого конторола пропорционально его Width ), и контролы что под ним (c Align Top), не сменили позицию.

В VCL был Autosize у Timage, есть ли что то подобное у FMX ?

Изменено пользователем ENRGY

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

5 ответов на этот вопрос

  • 0
В 4/19/2017 в 15:31, Равиль Зарипов (ZuBy) сказал:

Равиль огромное вам спасибо, так просто. Все работает. Обычная пропорция.

Я думал сложнее (я делал  Image1.Height := Image1.Bitmap.Height; ). И заодно решилась проблема, когда увеличиваешь размер формы, картинка корректно увеличивается с Fit. 

Вот правильный код, который посоветовал Равиль:

 

procedure TfrmSplash.FormResize(Sender: TObject);
var
  vKoef: Single;
begin
  if Handle = nil then exit; // on Android without this user will get Access Violation
  vKoef := Image1.Width / Image1.Bitmap.Width;
  Image1.Height := Image1.Bitmap.Height * vKoef;
end

 

Изменено пользователем ENRGY

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

На Android без вот этого кусочка программа молча вылетает (Segmentation Failed)

 if Handle = nil then exit; 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 час назад, Равиль Зарипов (ZuBy) сказал:

там есть TBitmap.HandleAllocated, его нужно использовать

нет, тут речь идет про Handle формы (хотя я не пойму причем тут Handle формы под Android, это же фишка Windows). Почему то сначала он <> nil, затем при втором срабатывании onResize Handle = Nil , и где то  в дебрях в результате получается  AV после присваивания Image1.Height .

Причем это новый проект.

.

Изменено пользователем ENRGY

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу