Главная страница
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.02 c
3-96595
Niger
2003-01-13 15:22
2003.01.30
Capability not supported


3-96640
Kudatsky
2003-01-14 14:50
2003.01.30
Проверка синтаксиса SQL-запроса


9-96507
Сирожа
2002-08-07 00:08
2003.01.30
DirectX


6-96936
NewGuest
2002-12-06 19:33
2003.01.30
Мастера, раз в D7 не установлены компаненты типа TclientSocket,то


3-96534
NaPoleOn_IV
2003-01-14 21:55
2003.01.30
Копирование