Die vielen Codezeilen verwirren mich.
Wenn sich ein Bild MyImage in meiner MyPaintBox befindet, und das Bild ist mit dem Zoomfactor vergrößert, dann ergibt sich doch die absolute Koordinate einer MousePos (relativ zu MyPaintBox) wie folgt:
Delphi-Quellcode:
ZoomedMousePos := ScaledPoint(MousePos, Zoomfactor) - MyImage.TopLeft; // in 'gezoomte' absolute Koordinaten umrechnen
PointOnOriginalImage := ScaledPoint (ZoomedMousePos, 1/Zoomfactor); // Absoluter Punkt im gezoomten Bild => ungezoomt.
Die Operatoren [+] und [-] auf TPoint sind bekannt, müssten aber auskodiert werden.
Die Funktion 'ScaledPoint' multipliziert die Koordinaten des Punktes mit dem Zoomfactor.
Und bei dem freundlicherweise geposteted Stück Code fällt mir als erstes auf, das die Refactoring-Funktion unbekannt zu sein scheint.