我正在尝试将一些代码从 delphi 转换为 firemoneky,但遇到了一些我不确定如何在 firemoneky 中执行的操作。
SetCursorpos
setcursorpos(p.x,p.y);
关于如何在 firemonkey 中执行此操作的任何想法?
我已经尝试过game.SetCursor(p.x,p.y);
,但它不喜欢它说 setcursor 是未定义的.. 也确实将 fmx.plateform 添加到我的使用列表中。
我正在尝试将一些代码从 delphi 转换为 firemoneky,但遇到了一些我不确定如何在 firemoneky 中执行的操作。
SetCursorpos
setcursorpos(p.x,p.y);
关于如何在 firemonkey 中执行此操作的任何想法?
我已经尝试过game.SetCursor(p.x,p.y);
,但它不喜欢它说 setcursor 是未定义的.. 也确实将 fmx.plateform 添加到我的使用列表中。
XE2 FMX 源代码中没有调用SetCursorPos
Win32 API 函数。从中我得出结论,FMX 框架中没有任何东西封装了该功能。
您需要SetCursorPos
直接在您的 Windows FMX 项目中调用。如果您的目标是其他平台,那么您需要为该平台调用适当的 API。
我发现了一些东西,但它只适用于 Windows: - 你需要制作一个 DATA 模块 - 将它的类型设置为 VCL(这对我来说是可能的,因为我使用的是 delphi XE 10.1) - 将 Windows 单元添加到用途 -像这样在 DataModul 中创建一个过程
`procedure TMouseController.SetCursorPosition(x, y: integer);`
begin
SetCursorPos(x, y);
end;
end.
- 然后像这样在程序中使用它:
`procedure TMainForm.Form3DShow(Sender: TObject);
var
Center: TPoint;
begin
Center.SetLocation(Screen.Width div 2, Screen.Height div 2);
MouseController.SetCursorPosition(Center.X, Center.Y);
end;`