OnTAP 事件的运行时分配 Delphi 西雅图
Runtime allocation of OnTAP event Delphi Seattle
我正在使用 Firemonkey 并且
我想在运行时将 OnTap 事件分配给 object。
我尝试的代码与我用于 OnClick 事件的代码基本相同:
Header 在顶部:
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 不兼容的类型:'Parameter lists differ'
下面是我尝试过的代码示例:
Header 在顶部:
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;
我的知识有缺口需要填补。
尝试从 Point
参数中删除 [Ref]
属性:
procedure txtOnTAPEvent(Sender: TObject; const Point: TPointF);
procedure TMyForm.txtOnTAPEvent(Sender: TObject; const Point: TPointF);
begin
//do stuff
end;
如果您在设计时双击对象检查器中任何 UI 控件的 OnTap
事件,您将看到 IDE 生成一个 OnTap
不包含 [Ref]
属性的事件处理程序。 FMX.Types.TTapEvent
的声明中没有 [Ref]
属性以开头:
TTapEvent = procedure(Sender: TObject; const Point: TPointF) of object;
我正在使用 Firemonkey 并且 我想在运行时将 OnTap 事件分配给 object。
我尝试的代码与我用于 OnClick 事件的代码基本相同:
Header 在顶部:
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 不兼容的类型:'Parameter lists differ'
下面是我尝试过的代码示例:
Header 在顶部:
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;
我的知识有缺口需要填补。
尝试从 Point
参数中删除 [Ref]
属性:
procedure txtOnTAPEvent(Sender: TObject; const Point: TPointF);
procedure TMyForm.txtOnTAPEvent(Sender: TObject; const Point: TPointF);
begin
//do stuff
end;
如果您在设计时双击对象检查器中任何 UI 控件的 OnTap
事件,您将看到 IDE 生成一个 OnTap
不包含 [Ref]
属性的事件处理程序。 FMX.Types.TTapEvent
的声明中没有 [Ref]
属性以开头:
TTapEvent = procedure(Sender: TObject; const Point: TPointF) of object;