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

Вниз

Как узнать, есть ли обработчик события у компонента?   Найти похожие ветки 

 
SerKom   (2005-03-10 06:12) [0]

Как узнать, есть ли обработчик события у компонента? Например, есть у кнопки Button1 обработчик события ОnClick, что-то типа
if Button1.OnClick(Button1)<>nil then
 Button1.OnClick(Button1);


 
KSergey ©   (2005-03-10 07:08) [1]

Ну, так и узнавать
А в чем вопрос тогда?

(можно только узнать назначен ли он. приведенный код это как раз и делает)


 
Юрий Зотов ©   (2005-03-10 07:33) [2]

Ну, положим, приведенный код не проверяет, а дважды вызывает обработчик и если он не назначен, получим ошибку.

То же самое, но безопасно можно сделать так: вызывать метод диспетчеризации события (если он есть). В данном случае - просто Button1.Click. В этом методе компонент сам проверит, есть ли обработчик и если есть, то сам же его и вызовет.

А если метода диспетчеризации не предусмотрено, то проверить можно так:
if @Button1.OnClick <> nil then...
или через RTTI:
if GetMethodProp(Button1, "OnClick").Code <> nil then...


 
KSergey ©   (2005-03-10 09:47) [3]

> [2] Юрий Зотов ©   (10.03.05 07:33)
> Ну, положим, приведенный код не проверяет, а дважды вызывает
> обработчик и если он не назначен,

Ой, мне стыдно... каюсь...


 
SerKom   (2005-03-10 11:46) [4]

Спасибо Юрию Зотову!
Я ошибки при отсутствии обработчика и хотел избежать.


 
Sandman25 ©   (2005-03-10 11:53) [5]

При использовании Assigned не приходится вспоминать, нужен ли @


 
SerKom   (2005-03-10 12:13) [6]

2Sandman25
Спасибо!



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

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

Наверх




Память: 0.47 MB
Время: 0.027 c
1-1110863289
smok_red
2005-03-15 08:08
2005.03.27
Почему не работает ??


1-1110549873
UT
2005-03-11 17:04
2005.03.27
Побновить экран


14-1110363553
R.D.I.
2005-03-09 13:19
2005.03.27
Сайт kladovka.com.ru приостановил работу?


9-1104049075
Evgenius
2004-12-26 11:17
2005.03.27
Помогите с реализом простенького AI


14-1109957542
G100M
2005-03-04 20:32
2005.03.27
Pantech g500 IMEI