Topic: Работа с параметром обработчика событий (Sender: string)
Добрый день. Нигде не нашел описания, что именно находится в этом параметре. В обычном Delphi там передаётся объект, у которого возникло это событие; в скриптах MyVisualDatabase, видимо, тоже, но в виде строки, содержащей число.
Можно ли использовать это значение, например, для создания одного обработчика для нескольких элементов интерфейса?
Первоначальная задумка была такая: для отображения в меню форм справочников у меня используется куча однотипных процедур, которые я хотел заменить одной. По задумке я хотел сохранить в Tag ссылку на форму, что обычно легко удаётся в Delphi.
procedure MenuItemClick (Sender: string);
var
form:TForm;
begin
form := TForm( TMenuItem(sender).tag );
form.ShowModal;
end;
Но ничего не вышло, так как компилятор не захотел выполнять приведение типов:
var
miItems: TMenuItem;
begin
miItems := TMenuItem.Create (frmMain.MainMenu);
miItems.Tag := Integer(frmItem);
Остались вопросы:
1. Как правильно использовать параметр sender для получения доступа к элементам интерфейса?
2. Как запихать в Tag ссылку на объект?
(Пока вижу только одно решение: создаётся глобальный ObjectList:TList, в него добавляются объекты, а доступ к ним - по индексу, который хранится в Tag)