【发布时间】:2017-02-27 08:34:29
【问题描述】:
我有一个正在绘画的表格 (OnPaint)。我让用户点击并更改形状。但是,我想允许用户越过表单的边缘。当鼠标越过边缘时,如何获得鼠标时刻。我知道这可以做到,因为它适用于 TrackBar。虽然这是一个组件而不是表单,但我认为我可以更改表单样式或注册一些东西以使其以类似的方式运行。
我计划让表单背景变得如此理想透明,同样的解决方案可以让我在透明区域上移动鼠标。
【问题讨论】:
标签: delphi firemonkey
我有一个正在绘画的表格 (OnPaint)。我让用户点击并更改形状。但是,我想允许用户越过表单的边缘。当鼠标越过边缘时,如何获得鼠标时刻。我知道这可以做到,因为它适用于 TrackBar。虽然这是一个组件而不是表单,但我认为我可以更改表单样式或注册一些东西以使其以类似的方式运行。
我计划让表单背景变得如此理想透明,同样的解决方案可以让我在透明区域上移动鼠标。
【问题讨论】:
标签: delphi firemonkey
FMX 为此使用AutoCapture 属性。然后在鼠标按钮按下时将捕获鼠标。
constructor TMyGrip.Create(AOwner: TComponent);
begin
inherited;
AutoCapture := True;
CanFocus := True;
end;
这不适用于表单。但是您可以在填满整个客户端的表单上添加TLayout。
FMX 内部为此使用FWinService.SetCapture(Self); 和FWinService.ReleaseCapture(Self);,并且这接受一个表单。我还没有测试过,但是如果你这样调用内部函数,你可能会混淆 FMX 框架。
【讨论】: