Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Программно изменить имя процедуры-обработчика события


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]

Присвой ей адрес этой другой и все.


Наверх

Титульная страница Поиск, карта сайта Написать письмо