我正在尝试将一些代码从delphi转换为firemoneky,但遇到一些我不确定如何在firemoneky中执行的操作。
SetCursorpos
setcursorpos(p.x,p.y);
关于如何在firemonkey中执行此操作的任何想法?
我试过game.SetCursor(p.x,p.y);
但它不喜欢它说setcurrsor是未定义的。也确实将fmx.plateform添加到我的使用列表。
答案 0 :(得分:1)
XE2 FMX源代码中没有调用SetCursorPos
Win32 API函数。从中可以得出结论,FMX框架中没有任何内容包含该功能。
您需要直接在Windows FMX项目中致电SetCursorPos
。如果您要定位其他平台,则需要为该平台调用相应的API。
答案 1 :(得分:0)
我发现了一些东西,但它仅适用于Windows: - 你需要制作一个DATAmodule - 将它的类型设置为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;`