Тема: (FMX) ScrollBox - Timage Zoom - порожні границi
Доброго дня, шановні.
Відразу прошу вибачення за мою тупість - років 5 не кодив, та й особливо Делфі не знав i не знаю). Зараз ще й довелося працювати з FMX.
Моє завдання зробити переглядач фотографій (не саму галерею) як стандартний на Андроїді: зум та скролінг фото.
На формі є ScrollBox( Align: Client ) i в ньому Timage( Align: Center, WrapMode: Fit ).
Є робочий код зуму з папки Samples, все працює як треба:
procedure TViewForm.Image1Gesture(Sender: TObject;
const EventInfo: TGestureEventInfo; var Handled: Boolean);
var
LObj: IControl;
LImageCenter: TPointF;
begin
if EventInfo.GestureID = igiZoom then
begin
LObj := Self.ObjectAtPoint(ClientToScreen(EventInfo.Location));
if LObj is TImage then
begin
if (not(TInteractiveGestureFlag.gfBegin in EventInfo.Flags)) and (not(TInteractiveGestureFlag.gfEnd in EventInfo.Flags)) then
begin
LImageCenter := Image1.Position.Point + PointF(Image1.Width / 2, Image1.Height / 2);
Image1.Width := Max(Image1.Width + (EventInfo.Distance - FLastDistance), 10);
Image1.Height := Max(Image1.Height + (EventInfo.Distance - FLastDistance), 10);
Image1.Position.X := LImageCenter.X - Image1.Width / 2;
Image1.Position.Y := LImageCenter.Y - Image1.Height / 2;
end;
FLastDistance := EventInfo.Distance;
end;
end;
end;
Проблема в тому, що я не можу зробити, щоб ScrollBox був повністю заповнений фотографією.
Тобто, коли завантажену фотографію збільшую, то по краях зліва та справа (або зверху та знизу - залежить від співвідношення сторін у фотографії) з'являються порожні границi, які збільшуються разом із фотографією ( див. скрiн ).
Що я не так роблю? І як це можна виправити?
Дякую хто допоможе