Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.30;
Скачать: CL | DM;

Вниз

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

 
lightix   (2003-01-21 16:35) [0]

Подскажите, возможно ли такое:
Установить для Action1.OnExecute одну процедуру-обработчик, а потом программно изменить ее на другую?


 
uw ©   (2003-01-21 16:38) [1]

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


 
lightix   (2003-01-21 16:46) [2]

Action1->OnExecute имеет тип TNotyfyEvent. Как я могу ему присвоить адрес?


 
lightix   (2003-01-21 17:02) [3]

ЭЙ! МАСТЕРААААА!!!
Ну подскажите, неужели никто не знает?

Есть Action1->OnExecute и есть функция my_function(...)
Как сказать во время выполнения программы, чтобы при OnExecute выполнялась эта функция??


 
PVOzerski ©   (2003-01-21 17:09) [4]

Так не адрес надо присваивать, а процедурную переменную of object! То есть, например:
Button1.onClick:=Form1.onClick;
Важно лишь, чтобы присваиваемая процедура была методом какого-нибудь класса и совпадала по параметрам вызова и соглашениям об их передаче.


 
KDenis ©   (2003-01-21 17:10) [5]

Попробуй для Action1.OnExecute написать код:
IF <Что-то = true> then <первая процедура>
Else If <Что-то = false> then <вторая процедура>


 
lightix   (2003-01-21 17:21) [6]

Хе-хе :) если б так можно было, уже давно бы написал :)
А мне в том-то и дело, что нужно свою процедуру туда прописать, со своими параметрами и т.п.
Это нужно для того чтобы сформировать элемент меню (функция NewItem требует в качестве обработчика значение именно TNotofyEvent). А мне нужно туда засадить свою процедуру.
Т.е. я хочу объявить переменную типа TNotifyEvent и посадить в нее свою функцию со своими параметрами....


 
icWasya ©   (2003-01-21 17:40) [7]

.. и посадить в нее свою функцию со своими параметрами....????????
энто как???


unit Classes;
...........
type TNotifyEvent = procedure(Sender:TObject) of object;

// !!!!!!!!!!!


 
lightix   (2003-01-21 17:48) [8]

Вот, теперь понятно, что это невозможно..... :((((
Ну а хотя бы по Sender"у можно определить имя объекта?
т.е. какой элемент меню вызвал процедуру?


 
uw ©   (2003-01-21 18:03) [9]

>PVOzerski. Присваивается именно адрес. Нет никакой переменной, а есть метод.



Страницы: 1 вся ветка

Текущий архив: 2003.01.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.064 c
1-96698
Maxk
2003-01-21 18:39
2003.01.30
Закрыть окно


4-97091
Alexsc
2002-12-16 12:48
2003.01.30
показать окно ранее запущенной программы


3-96572
Jeka
2003-01-12 13:40
2003.01.30
фильтр


4-97071
Scorp
2002-12-14 23:25
2003.01.30
Файл BdeInst.dll запускается командой regsvr32, а как запустить


14-96944
Rule
2003-01-11 02:54
2003.01.30
Помогите продублировать сервер FB1.0 на Линуксе