C++Builder
Начало
Форум
Помощь
Войти
Регистрация
C++Builder
>
Forum
>
Вопросы программирования
>
Общие вопросы программирования в C++Builder
>
Один обработчик для разных событий.
Страниц: [
1
]
Вниз
Печать
Автор
Тема: Один обработчик для разных событий. (Прочитано 4812 раз)
GL_basik
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 4
Один обработчик для разных событий.
«
:
08 Октябрь 2007, 12:21:37 »
На форме имеется несколько Edit. У всех используется событие OnExit, и по этому событию должны выполнятся однотипные действия. В качестве обработчика события я указываю одну и ту же процедуру, но мне нужно получить доступ к свойствам компонента Edit вызвавшего событие (нужно получить Text). Насколько я понял Sender имеет тот же адрес что и нужный мне компонент. Но через Sender вытащить Text не удалось (точнее я просто не знаю как это делать). Подскажите пожалуйста как решить эту проблему?
Записан
GL_basik
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 4
Re: Один обработчик для разных событий.
«
Ответ #1 :
08 Октябрь 2007, 12:28:37 »
Что-то я туплю сегодня. Разобрался сам.
Код
(
(
TEdit
*
)
Sender
)
-
>
Text
Извините, тему можно закрыть.
Записан
Faster
Участник
Сказали спасибо: +0/-2
Offline
Сообщений: 160
Re: Один обработчик для разных событий.
«
Ответ #2 :
09 Октябрь 2007, 06:39:18 »
нет ты тупишь
TAсtion те в помоЩЬ
или уже ->Tag чтобы узнать кто есть кто
Записан
Rius
Давний друг
Сказали спасибо: +116/-5
Offline
Сообщений: 753
Re: Один обработчик для разных событий.
«
Ответ #3 :
09 Октябрь 2007, 06:42:09 »
Faster
, нет, это ты тупишь
здесь именно такое использование Sender - самое то
«
Последнее редактирование: 09 Октябрь 2007, 06:48:24 от Rius
»
Записан
Alarix
Участник
Сказали спасибо: +1/-0
Offline
Сообщений: 162
Re: Один обработчик для разных событий.
«
Ответ #4 :
09 Октябрь 2007, 11:10:19 »
Цитата: Rius от 09 Октябрь 2007, 06:42:09
Faster
, нет, это ты тупишь
здесь именно такое использование Sender - самое то
ну не буду уточнять кто тупит, а вообще-то принято делать так:
Код:
...
TEdit* ed = dynamic_cast
(Sender );
if(!ed) return;
...
Записан
Rius
Давний друг
Сказали спасибо: +116/-5
Offline
Сообщений: 753
Re: Один обработчик для разных событий.
«
Ответ #5 :
09 Октябрь 2007, 13:45:17 »
При назначении обработчика только компонентам TEdit, о чём сказано в вопросе, dynamic_cast не обязателен (принято - не принято в данном случае определяется привычками). Статическое преобразование также прекрасно работает.
Записан
BlackFox
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 271
Re: Один обработчик для разных событий.
«
Ответ #6 :
09 Октябрь 2007, 13:53:50 »
2Rius: +1
Записан
oxotnik
Глобальный модератор
Сказали спасибо: +100/-15
Offline
Сообщений: 2425
Re: Один обработчик для разных событий.
«
Ответ #7 :
09 Октябрь 2007, 13:56:24 »
внесу свою лепту
TEdit *ed = (TEdit*) Sender;
дальше по имени или по Caption проверять...
хотя, че полемику разводить, человек то уже разобрался
Записан
Rius
Давний друг
Сказали спасибо: +116/-5
Offline
Сообщений: 753
Re: Один обработчик для разных событий.
«
Ответ #8 :
09 Октябрь 2007, 14:05:43 »
добавлю ещё чуть-чуть лепты
вместо проверки по Name/Caption можно проверять совпадения между Sender и указателями на сами TEdit'ы, наверно будет быстрее сравнения строк в C++...
Записан
Страниц: [
1
]
Вверх
Печать
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Вопросы программирования
-----------------------------
=> Общие вопросы программирования в C++Builder
=> Программирование с FMX
=> Работа с базами данных в C++Builder
=> Windows API
=> Технологии COM/DCOM, ActiveX
=> Аспекты и идеология профессиональной разработки ПО
=> Компьютерное железо и системное администрирование
=> студенческий городок
-----------------------------
Обсуждение материалов на сайте
-----------------------------
=> Обсуждений статей на сайте
=> Обсуждение материалов из файлового архива
=> Компоненты сторонних разработчиков к С++Builder
-----------------------------
Работа сайта и новости
-----------------------------
=> Ищу/предлагаю работу
=> Новости из мира программирования
=> Новости - события календаря
=> Голосования
=> Компьютерный юмор и приколы
=> Работа сайта
=> Флейм
-----------------------------
FAQ - частозадаваемые вопросы/ответы
-----------------------------
=> FAQ, общие вопросы, посвящённые C++Builder
=> FAQ, вопросы по базам данных
=> FAQ, вопросы по компонентам
Загружается...