Firemonkey - обнаружение объектов - PullRequest
0 голосов
/ 19 апреля 2020

Я использую Delphi 10.3.3. для Android app.

На форме у меня есть X прямоугольных объектов. У меня такой вопрос: как лучше всего определить, кого я нажал? (Например, получить его имя)

1 Ответ

1 голос
/ 19 апреля 2020

Создайте обработчик события для события OnTap().

В инспекторе объектов назначьте этот обработчик события OnTap для всех прямоугольников.

Использование Sender параметр, вы можете попасть в прямоугольник, который вызвал событие и найти его имя. Например,

procedure TForm1.Rectangle1Tap(Sender: TObject; const Point: TPointF);
begin
  ShowMessage((Sender as TControl).Name);
end;

Пример процедуры для создания TRectangle экземпляров и назначения события

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  rect: TRectangle;
begin
  for i := 0 to 5 do
  begin
    rect:= TRectangle.Create(Form1);
    rect.Parent := Form1;
    rect.Position.Point := PointF(10 + i * 75, 10);
    rect.Name := 'Rectangle'+IntToStr(i);
    rect.OnTap := Rectangle1Tap;
  end;
end;
...