Проблема с событиями в Forms

Всем привет. У меня возникла проблема с классом Button. У меня есть переменная (BTN_Last_Itm1) типом button, и параметр (sender) тип object, которая содержит в себе кнопку. Задача: тут в том, чтобы я передал значение события из (sender) в (BTN_Last_Itm1).

procedure MainForm.BTN_Remove_Click(sender: Object; e: EventArgs);
begin
  BTN_Last_Itm1.Click := (sender as Button).Click;
end;

Но компилятор выдает ошибку : Ожидалось имя переменной.

Тут нет ошибки. А на какой строчке? И поставьте += вместо :=

при плюсе тоже ошибка

Для начала подробнее объясните что вы пытаетесь сделать. Выглядит как копирование обработчика события, но это не то что вы сказали и я не представляю в какой нормальной ситуации это понадобится.

моя цель задачи в том чтобы сделать панель с последними нажатыми кнопками. И у меня возникла проблема с тем чтобы передать “свойства” события (не ссылку) . На скрине я убрал некоторые строчки чтобы было видно ошибку, а так там должны события и текст смещаться.

Ок. Но запоминать надо явно не вообще любые кнопки. Кнопки вроде “OK” и “Отмена” запоминать бессмысленно. Предлагаю объявить свой класс SaveableButton, наследующий от Button. Изнутри класса читать обработчик события можно, поэтому можно сделать к примеру такой конструктор этого класса:

    public constructor;
    begin
      self.Click += (o,e)->
      begin
        var copy: SaveableButton;
        //ToDo как-то инициализировать copy
        // - Наверное если кнопка уже есть на панеле - надо брать уже существующую копию, а не добавлять новую
        copy.Click += self.Click;
        //ToDo добавить copy на панель всех кнопок этого типа
        // - Эту панель можно хранить в статическом поле класса SaveableButton
      end;
    end;
1 лайк