Hi,
In our application we handle rotation ourselves and not through the rotate interaction. To do this, we need to determine the current mouse coordinates with regards to the background image layer (layer 0) to calculate rotating angles. However, we have noticed that for a few mousemove events, ConvXScr2Bmp and ConvYScr2Bmp give incorrect results. The coordinate returned is too far to the top left compared to the actual position.
I have been able to get this same result in the Demos\Other\MouseInteract demo by implementing the OnMouseMove event as follows:
if ssLeft in Shift then
begin
x2 := ImageEnView1.Layers[0].ConvXScr2Bmp(x);
y2 := ImageEnView1.Layers[0].ConvyScr2Bmp(y);
Memo1.Lines.Add(x2.ToString + ', ' + y2.ToString + ' - ' + x.ToString + ', ' + y.ToString);
end;
The result can be seen in the screenshot below (as well as in the actual rotation of the image, which suddenly flips around). As you can see in the last few lines of the Memo on the right, the Y coordinate of the mouse cursor does not change, but the result of ImageEnView1.Layers[0].ConvyScr2Bmp(y); suddenly jumps 90 pixels.
We are using ImageEn 8.1.1, but the effect was in our application also still visible with ImageEn 8.3.
We have also tried using ImageEnView1.XScr2Bmp / YScr2Bmp, but these show the same effect.
Can you advice?