Delphi-模拟(多)触摸输入
在delphi应用程序内部是否有模拟触摸输入的实际方法,如果有,是否也可以模拟多点触摸 问题示例:某些应用程序只接受某些操作的触摸输入Delphi-模拟(多)触摸输入,delphi,touch,multi-touch,Delphi,Touch,Multi Touch,在delphi应用程序内部是否有模拟触摸输入的实际方法,如果有,是否也可以模拟多点触摸 问题示例:某些应用程序只接受某些操作的触摸输入 理想的解决方案示例:使用键盘键模拟触摸输入。能够使用“A”键模拟触摸坐标(x,y),使用“B”键模拟触摸坐标(x+n,y+m),并且能够一个接一个或同时按下两个键,这可能非常重要/非常理想。(此处3个键的物理限制应忽略)。我不知道多点触摸,但您可以模拟鼠标单击(单点触摸)。不适用于TWebBrowser、TMapView和TListView等内容。理论上,您可以
理想的解决方案示例:使用键盘键模拟触摸输入。能够使用“A”键模拟触摸坐标(x,y),使用“B”键模拟触摸坐标(x+n,y+m),并且能够一个接一个或同时按下两个键,这可能非常重要/非常理想。(此处3个键的物理限制应忽略)。我不知道多点触摸,但您可以模拟鼠标单击(单点触摸)。不适用于TWebBrowser、TMapView和TListView等内容。理论上,您可以修改Firemonkey从硬件获取其多点触控数据的源代码,并在该点发送您自己的数据,但这超出了本答案的范围
function TForm1.FindControlAtPoint(aParent: TControl; aPos: TPointF): TControl;
var
I: Integer;
Control, ChildControl: TControl;
S: String;
begin
Result := nil;
// Check all the child controls and find the one at the coordinates
for I := aParent.Controls.Count – 1 downto 0 do
begin
Control := aParent.Controls[I];
S := Control.ClassName;
if Control.PointInObject(aPos.X, aPos.Y) then
begin
ChildControl := FindControlAtPoint(Control, aPos);
if Assigned(ChildControl) and ChildControl.HitTest then
Exit(ChildControl)
else if Control.HitTest then
Exit(Control);
end;
end;
end;
有一个演示项目可用。感谢您的建议答案。投票,但是,我会等待,如果有人有更好的答案,关于多点触摸特别是接受…我不知道你问什么平台。如果我们知道这一点,我们可能会有更多的机会提供帮助@DavidHeffernan所说的平台你指的是Delphi的版本吗?不。虽然那也会有帮助。我们不知道你的程序运行在什么系统上。或者你的程序使用什么框架。我不是说具体的应用程序,而是在这里寻找一个相当通用的解决方案…Delphi现在可以针对windows、osx、iOS和Android。它在Windows上有VCL,在所有其他平台上有FMX。这个问题仍然没有提供我在这方面要求的任何信息。也许你所需要的只是发送WM_手势信息。很难知道。