Всем привет. У меня возникла проблема с классом 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;