客户端屏幕和setcursorpos到firemonkey

时间:2013-08-26 00:49:14

标签: delphi delphi-xe2 firemonkey

我正在尝试将一些代码从delphi转换为firemoneky,但遇到一些我不确定如何在firemoneky中执行的操作。  SetCursorpos

  setcursorpos(p.x,p.y);

关于如何在firemonkey中执行此操作的任何想法?

我试过game.SetCursor(p.x,p.y);
但它不喜欢它说setcurrsor是未定义的。也确实将fmx.plateform添加到我的使用列表。

2 个答案:

答案 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;`