Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как использовать TObject* Sender ? один обработчик на много компонентов 
:(
    Опции темы
Dubinsky
Дата 10.7.2005, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

Репутация: нет
Всего: нет



Здравствуйте , хотелось бы знать такую вещь :

Я создал много кнопок повесив им один обработчик события OnMousemove , у него есть параметр TObject* Sender , по которому вроде можно узнать какой компонент из приписанных обработчику , породил событие .

Так как узнать какой компонент породил событие если обработчик приписан к многим компонентам ?
PM MAIL WWW   Вверх
Любитель
Дата 10.7.2005, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: нет
Всего: 92



Ну, например, так:
Код

if (((TButton*)Sender)->Caption=="Button1") {...}



--------------------
PM MAIL ICQ Skype   Вверх
vadims
Дата 10.7.2005, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 8.6.2005

Репутация: нет
Всего: 17



ИМХО: Более корректно приводить к TControl и использовать Name


--------------------
Cpu not found ! Press any key for software emulation.
PM MAIL   Вверх
Dubinsky
Дата 10.7.2005, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

Репутация: нет
Всего: нет



для моего случая Любитель написал что надо , всё пучком smile спасибо

насчёт более корректного варианта - приводить к ТКонтрол для более универсального обработчика ? (это если обрабатывать одним обработчиком разные по типу компоненты , кнопки и панели допустим ?)




PM MAIL WWW   Вверх
np9mi7
  Дата 11.7.2005, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: 1
Всего: 10



Цитата
Я создал много кнопок повесив им один обработчик события OnMousemove , у него есть параметр TObject* Sender , по которому вроде можно узнать какой компонент из приписанных обработчику , породил событие .
, зачем плодить много условий, ведь это ни есть хорошо?, если каждая кнопка несет за собой единственную комманду делай на каждую свой обработчик: и код более читаемый и более быстрый ( много if - оф это плохо);


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
chaos
Дата 11.7.2005, 07:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 1
Всего: 44



Цитата
Ну, например, так:
Код

if (((TButton*)Sender)->Caption=="Button1") {...}

dynamic_cast<TButton *>(Sender)наверное красивее использовать
PM WWW   Вверх
Dubinsky
Дата 11.7.2005, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 1.6.2005

Репутация: нет
Всего: нет



спасибо большое всем smile
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.