Well, that is the point. One of the application I developed is extremely rich in terms of widgets, and enabling a mouse position for each individual ones would be very repetitive, unless there would be a way to track the current active widget and pass its value on so that one could write
glopos:=widget.ClientToScreen(Point (X,Y));
locpos:=Form1.ScreenToClient(glopos);
which would allow all the OnMouseMove event to be associated with a single generic and universal procedure.
I dare assume that all those switching between the various procedure would be some sort of a burden on the system, with it having to track all those events.
I figure, if I get down to the most basic unit, the system mouse tracking, I could build a code that bypasses most of the individual events (sort of like the various widgets inheriting the TForm mouse position) and have a more effective code. One of my main target platform are smartphones/pocketpc, and they do not have all the excess poser of desktop computers, so every little bit may help. On such machines, the mouse does not ' move' it jumps to where one taps with the stylus/finger, unless it is dragged around.
TCanvas is a interesting tool, which I am now exploring. I will have to resolve and investigate the possibility of working with multiple canvas units, blinking them on and off (visibility) as well as having it share real estate with pop-up/context dependent widgets.
I suppose the next step is to move to LazRGBGraphics and OpenGL. I still have a lot to explore.
Vincent G