Bonjour,

dans le cadre d'un projet FMX dont je parle ici je tente d'obtenir la position absolue du curseur à partir d'une TFrame

Voilà le source qui compile lorsqu'il s'agit d'un TForm
procedure TFormImage.FormGesture(Sender: TObject;
const [Ref] EventInfo: TGestureEventInfo; var Handled: Boolean);
{-----------------------------------------------------------------------------
Procedure: FormGesture
Objectif: Gestion des mouvements,
ATTENTION à certaines propriétés de la forme
-Touch.InterActiveGesture[Zoom,Pan] pour PC et Mac OSX ?
-Touch.InterActiveGesture[] pour mobiles ? (IOS et Android) il semble que cela ne fonctionne pas autrement
vont dépendre de l'OS cible
-----------------------------------------------------------------------------}
var C : IControl;
S : Single;
begin
C:=Self.ObjectAtPoint(ClientToScreen(EventInfo.Location));
if not Assigned(C) then Exit;
// déplacement
if (C is TScrollBox) and (Eventinfo.GestureID=igiPan) then
ScrollBox1.AniCalculations.TouchTracking:=[ttvertical,tthorizontal];
// zoom
if (C is TScrollBox) and (Eventinfo.GestureID=igiZoom) then
begin
ClientToScreen n'est pas reconnu pour un TFrame, je l'ai remplacé ainsi

C:=Self.ObjectAtPoint(TForm(Self).ClientToScreen(EventInfo.Location));
est-ce logique ? je n'ai plus de matériel "touch sensible" (Mac et IOS) sous la main pour vérifier
et, du coup, j'ai des doutes sur le ClientToScreen et accessoirement sur la nécessité de mettre Self.ObjectAtPoint ou ObjectAtPoint me semble suffire (voilà ce que c'est de copier "bêtement" du code , on ne sait pas toujours le pourquoi de certaines choses)