是否有一种模拟delphi app内部触摸输入的实际方法,如果有,是否可以模拟多点触控?
问题示例:某些应用仅接受某些操作的触摸输入。
所需的解决方案示例:使用键盘键模拟触摸输入。能够使用Key" A"它可能是至关重要/非常需要的。模拟坐标(x,y)上的触摸,键" B" on(x + n,y + m),并且能够同时按下一个或两个键。 (这里应忽略3个键的物理限制)。
答案 0 :(得分:2)
我不了解多点触控,但您可以模拟鼠标点击(单点触控)。不适用于像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;
有一个可用的演示项目here。