Форум: "Основная";
Текущий архив: 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.048 c