我正在使用 Firemonkey 和 我想在运行时将 OnTap事件分配给一个对象。
我尝试过的代码与我用于 OnClick事件的代码基本相同:
顶部的标题:
procedure txtHostClick(Sender: TObject);
程序:
procedure TMyForm.txtHostClick(Sender: TObject);
begin
//do stuff
end;
分配给事件处理程序:
hotspot := Tmemo.Create(Highlight_Scrollbox);
hotspot.OnClick := txtHostClick;
所以我尝试将相同的逻辑应用于 OnTap事件,它会出现以下错误:
[DCC错误] s3.pas(4338):E2009不兼容的类型:'参数列表不同'
以下是我尝试过的代码示例:
顶部的标题:
procedure txtOnTAPEvent(Sender: TObject; const [Ref] Point: TPointF);
程序:
procedure TMyForm.txtOnTAPEvent(Sender: TObject; const [Ref] Point: TPointF);
begin
//do stuff
end;
分配给事件处理程序:
hotspot := Tmemo.Create(Highlight_Scrollbox);
hotspot.OnTap := txtOnTAPEvent;
我的知识中存在需要填补的空白。
答案 0 :(得分:0)
尝试从[Ref]
参数中删除Point
属性:
procedure txtOnTAPEvent(Sender: TObject; const Point: TPointF);
procedure TMyForm.txtOnTAPEvent(Sender: TObject; const Point: TPointF);
begin
//do stuff
end;
如果在设计时双击Object Inspector中的任何UI控件的OnTap
事件,您将看到IDE生成的OnTap
事件处理程序不包含{{1属性。事实上,[Ref]
的声明中没有[Ref]
属性,这一点得到进一步强制执行:
FMX.Types.TTapEvent