![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программно изменить имя процедуры-обработчика события
lightix © (2003-01-21 16:35:00)Подскажите, возможно ли такое:
Установить для Action1.OnExecute одну процедуру-обработчик, а потом программно изменить ее на другую?
uw (2003-01-21 18:03:00) [1]>PVOzerski. Присваивается именно адрес. Нет никакой переменной, а есть метод.
lightix (2003-01-21 17:48:00) [2]Вот, теперь понятно, что это невозможно..... :((((
Ну а хотя бы по Sender"у можно определить имя объекта?
т.е. какой элемент меню вызвал процедуру?
icWasya (2003-01-21 17:40:00) [3].. и посадить в нее свою функцию со своими параметрами....????????
энто как???
unit Classes;
...........
type TNotifyEvent = procedure(Sender:TObject) of object;
// !!!!!!!!!!!
lightix (2003-01-21 17:21:00) [4]Хе-хе :) если б так можно было, уже давно бы написал :)
А мне в том-то и дело, что нужно свою процедуру туда прописать, со своими параметрами и т.п.
Это нужно для того чтобы сформировать элемент меню (функция NewItem требует в качестве обработчика значение именно TNotofyEvent). А мне нужно туда засадить свою процедуру.
Т.е. я хочу объявить переменную типа TNotifyEvent и посадить в нее свою функцию со своими параметрами....
KDenis (2003-01-21 17:10:00) [5]Попробуй для
Action1.OnExecuteнаписать код:
IF <Что-то = true> then <первая процедура>
Else If <Что-то = false> then <вторая процедура>
PVOzerski (2003-01-21 17:09:00) [6]Так не адрес надо присваивать, а процедурную переменную of object! То есть, например:
Button1.onClick:=Form1.onClick;
Важно лишь, чтобы присваиваемая процедура была методом какого-нибудь класса и совпадала по параметрам вызова и соглашениям об их передаче.
lightix (2003-01-21 17:02:00) [7]ЭЙ! МАСТЕРААААА!!!
Ну подскажите, неужели никто не знает?
Есть Action1->OnExecute и есть функция my_function(...)
Как сказать во время выполнения программы, чтобы при OnExecute выполнялась эта функция??
lightix (2003-01-21 16:46:00) [8]Action1->OnExecute имеет тип TNotyfyEvent. Как я могу ему присвоить адрес?
uw (2003-01-21 16:38:00) [9]Присвой ей адрес этой другой и все.