Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.031 c
1-1111052328
denis24
2005-03-17 12:38
2005.03.27
Grid+OnMouseDown


3-1109495196
Zapekank0
2005-02-27 12:06
2005.03.27
Использование DBRadioGroup...


1-1110644167
Слава
2005-03-12 19:16
2005.03.27
ListView - как установить фокус на элемент ?


3-1109315286
tradakad
2005-02-25 10:08
2005.03.27
Какой необходимо выбирать драйвер?


1-1110808247
Stanislav
2005-03-14 16:50
2005.03.27
Преобразование из 16-ти ричной системы в десятичную





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский