A primeira coisa que devemos fazer é configurar o componente Gesture Manager para aceitar os gestos de zoom, rotação. Esse último servirá para que possamos girar a imagem. Em seguida insira um componente do tipo TImage no formulário. Marque sua propriedade Align com a opção Center. Por fim, clique duas vezes sobre a propriedade MultiResBitmap e escolha uma foto usando o botão Open à direita do campo referente ao caminho da imagem:
Vamos iniciar a codificação criando uma variável. Ela será responsável por guardar a última posição. Localize a cláusula var logo acima de Implementation e adicione as variáveis. Caso a cláusula var não exista, digite-a.
A variável guardará a última distância de zoom na imagem, assim o zoom será sempre incremental. Feito isso precisaremos codificar agora o evento OnGesture do formulário. Preencha como mostrado abaixo.
Apesar de um código relativamente grande, ele é simples de ser entendido. A primeira linha abaixo do primeiro begin diz respeito a detecção do gesto praticado pelo usuário. Perceba:
A constante EventInfo, presente nos parâmetros do evento, recebe o ID (Identificador) do gesto praticado através do método GestureID. Ele então é comparado a constante igiZoom. Se foram iguais então capturamos a foto dentro do TImage e alteramos algumas de suas propriedades para darmos o efeito de zoom. Perceba que alteramos seu posicionamento em Position, sua altura e largura em Height e Width, respectivamente, e por fim guardamos sua última distantância na variável FLastDistance.