I use Delphi 7 and I have a TFrame
(hosted by a TForm
) with three panels that span over the whole surface, in a "upside down T" layout.
The panels should be resizeable, so I could use 2 splitters, but I want to give a better user experience: I'd like to have a single "size grip" in the T junction.
This "handle" should appear only when the user hovers the junction area.
So here is my question: what is the best way to have a control show on top of any other on mouse move?
TFrame.OnMouseMove
don't get called (obviously) because there are the panels inside and possibly any sort of other controls inside them.
I also strongly want to keep all the code inside the frame.
I see 2 solutions:
- Install a local Mouse Hook and go with it. But there could be some performance issues (or not?)
- Handle
TApplication.OnMessage
inside the frame, but adding some other code in order to simulate a "chain" of event handlers. This is because other parts of the application could need to handle TApplication.OnMessage for their own purposes.
Any other idea?
Thank you