Ver Mensaje Individual
  #2  
Antiguo 17-10-2024
navbuoy navbuoy is offline
Miembro
 
Registrado: mar 2024
Posts: 280
Reputación: 2
navbuoy Va por buen camino
El error con sgiZoom que mencionas puede deberse a que estás utilizando un valor incorrecto o no definido en la versión de Delphi que estás usando. sgiZoom no es un identificador estándar en todas las versiones de Delphi.

Para resolver este problema, en lugar de utilizar sgiZoom, deberías usar el valor correcto que está predefinido en Delphi para identificar gestos de zoom. Los identificadores de gestos en Delphi suelen estar definidos en la unidad FMX.Types, y el gesto de zoom puede ser identificado mediante la constante igiZoom (Interactive Gesture ID Zoom).

Aquí te doy una versión modificada de tu código que debería funcionar:

Código Delphi [-]
uses
  FMX.Types, FMX.Gestures;

procedure TF_Foto.Image1Gesture(Sender: TObject;
  const EventInfo: TGestureEventInfo; var Handled: Boolean);
var
  ZoomFactor: Single;
begin
  if EventInfo.GestureID = igiZoom then
  begin
    // Calcula el factor de zoom basado en la distancia de los dedos
    ZoomFactor := EventInfo.Distance / 100;

    // Aplica el factor de zoom a la imagen
    Image1.Width := Round(Image1.Width * ZoomFactor);
    Image1.Height := Round(Image1.Height * ZoomFactor);

    // Ajusta la posición para mantener la imagen centrada (opcional)
    Image1.Position.X := Image1.Position.X - (Image1.Width * (ZoomFactor - 1)) / 2;
    Image1.Position.Y := Image1.Position.Y - (Image1.Height * (ZoomFactor - 1)) / 2;

    Handled := True; // Marca que el gesto ha sido manejado
  end;
end;


Pasos a seguir:
Importar las unidades correctas: Asegúrate de que tienes las unidades FMX.Types y FMX.Gestures en la cláusula uses.
Reemplazar sgiZoom: Cambia sgiZoom por igiZoom, que es el identificador correcto para el gesto de zoom multitáctil.
Verifica que el componente TGestureManager esté configurado: Asegúrate de que tu componente TGestureManager esté correctamente vinculado al control y que el gesto de zoom esté habilitado.
Este enfoque debería solucionar el problema y permitir que tu código detecte el gesto de zoom correctamente.

Última edición por navbuoy fecha: 17-10-2024 a las 14:22:48.
Responder Con Cita