【发布时间】:2014-01-23 21:54:44
【问题描述】:
我使用 Delphi 7,我有一个 TFrame(由 TForm 托管),三个面板横跨整个表面,呈“倒 T”形布局。
面板应该是可调整大小的,所以我可以使用 2 个分离器,但我想提供更好的用户体验:我想在 T 形连接处有一个“尺寸夹”。
此“手柄”应仅在用户悬停连接区域时出现。
所以这是我的问题:在鼠标移动时让控件显示在任何其他控件之上的最佳方式是什么?
TFrame.OnMouseMove 不要被调用(显然),因为里面有面板,可能还有其他任何类型的控件。
我也强烈希望将所有代码保留在框架内。
我看到了 2 个解决方案:
- 安装本地鼠标钩并使用它。但可能有一些 性能问题(或不是?)
- 内部处理
TApplication.OnMessage框架,但添加一些其他代码以模拟“链” 的事件处理程序。这是因为应用程序的其他部分 可能需要为自己的目的处理 TApplication.OnMessage。
还有什么想法吗?
谢谢
【问题讨论】:
-
我不确定我是否解决了您的问题,但您不能为您拥有的每个内部面板处理
OnMouseMove吗?它可以只是一个常见的事件处理程序。 -
@TLama 我明白你的意思,但这些面板将充满其他内部控件,其中一些将在运行时创建或托管,我事先并不知道。
-
啊,当然。谁需要空面板。傻我:-)