FMX:如何在表单之外获取表单mousemove事件

时间:2017-02-27 08:34:29

标签: delphi firemonkey

我有一张我正在画上的表格(OnPaint)。我给用户手柄点击并更改形状。但是,我想允许用户移过表单的边缘。当鼠标经过边缘时,如何获得鼠标时刻。我知道这可以做到,因为它适用于TrackBar。虽然这是一个组件而不是一个表格,但我认为我可以改变表格风格或注册一些东西以使其在类似的庄园中行事。

我打算让表单背景透明,理想情况下,同样的解决方案可以让我在透明区域上移动鼠标。

1 个答案:

答案 0 :(得分:2)

FMX使用AutoCapture属性。然后在鼠标按钮关闭时捕获鼠标。

constructor TMyGrip.Create(AOwner: TComponent);
begin
  inherited;

  AutoCapture := True;
  CanFocus := True;
end;

这不适用于表单。但是您可以在填充整个客户端的表单上添加TLayout

FMX内部使用FWinService.SetCapture(Self);FWinService.ReleaseCapture(Self);来接受此表单。我还没有对此进行过测试,但如果您调用类似的内部函数,可能会发生很多混淆FMX框架的情况。