Delphi - 模拟(多)触摸输入

时间:2015-05-24 00:45:46

标签: delphi touch multi-touch

是否有一种模拟delphi app内部触摸输入的实际方法,如果有,是否可以模拟多点触控?

问题示例:某些应用仅接受某些操作的触摸输入。

所需的解决方案示例:使用键盘键模拟触摸输入。能够使用Key" A"它可能是至关重要/非常需要的。模拟坐标(x,y)上的触摸,键" B" on(x + n,y + m),并且能够同时按下一个或两个键。 (这里应忽略3个键的物理限制)。

1 个答案:

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