Распределение времени выполнения события OnTAP Delphi Seattle

Я использую 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;

В моих знаниях есть пробел, который необходимо восполнить.


person Andrew Maine    schedule 07.12.2015    source источник


Ответы (1)


Попробуйте удалить атрибут [Ref] из параметра Point:

procedure txtOnTAPEvent(Sender: TObject; const Point: TPointF);

procedure TMyForm.txtOnTAPEvent(Sender: TObject; const Point: TPointF);
begin
    //do stuff
end;

If you double-click on any UI control's OnTap event in the Object Inspector at design-time, you will see that the IDE generates an OnTap event handler that does not include the [Ref] attribute. This is further enforced by the fact that there is no [Ref] attribute in the declaration of FMX.Types.TTapEvent to begin with:

TTapEvent = procedure(Sender: TObject; const Point: TPointF) of object;
person Remy Lebeau    schedule 07.12.2015
comment
Привет, Реми, спасибо за ответ. Это верно. Мне также было интересно, можете ли вы объяснить следующее. Когда я помещаю объект в форму и создаю событие OnTap, используя встроенную вкладку событий в среде IDE, созданная процедура имеет поле [Ref]? - person Andrew Maine; 08.12.2015
comment
Я протестировал IDE перед тем, как опубликовать свой ответ. При использовании обновления 1 в Сиэтле, когда среда IDE создала событие, атрибут [Ref] отсутствовал. - person Remy Lebeau; 08.12.2015
comment
Спасибо. Я приму это. У меня нет обновления 1, так что это может быть просто версия без обновления. - person Andrew Maine; 08.12.2015