Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 1075
от 16.07.2008, 18:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 462, Экспертов: 26
В номере:Вопросов: 1, Ответов: 2

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 139823: Здравствуйте! У меня в с++ билдере 6 в программе есть несколько кнопок. Они называются Button1, Button2, ... Могу ли я по числу N обратится к кнопке ButtonN ? Спасибо. ...

Вопрос № 139.823
Здравствуйте!
У меня в с++ билдере 6 в программе есть несколько кнопок. Они называются Button1, Button2, ... Могу ли я по числу N обратится к кнопке ButtonN ?
Спасибо.
Отправлен: 11.07.2008, 17:41
Вопрос задал: Asteriks (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Fenixk19
Здравствуйте, Asteriks!
Не очень красивое решение, но другого не знаю: можно создать массив указателей на элемент типа кнопка и скопировать соответсвенно значения указателей в массив, а потом просто обращаться к ним по индексу. Подозреваю, что в борланде предусматрели более элегантное решение.

Приложение:

Ответ отправил: Fenixk19 (статус: 3-ий класс)
Ответ отправлен: 11.07.2008, 18:04
Оценка за ответ: 5
Комментарий оценки:
Спасибо

Отвечает: Dr_Andrew
Здравствуйте, Asteriks!
Действительно, в Borland C++ Builder имеется более изящное решение. Щелчок по кнопке вызывает событие OnClick, которое обрабатывается в функции, принимающей в качестве аргумента указатель на объект, который это событие (щелчок) вызвал - TObject* Sender. Для получения доступа к свойствам этого объекта, нужно прямо указать, что это кнопка, выполнив приведение типов:

(TButton*)Sender

Допустим, у нас есть форма, на которой три кнопки: Button1, Button2 и Button3. Присвоим свойству Tag каждой кнопки значение 1, 2 или 3, соответственно. Реализуем обработчик события OnClick для первой кнопки (см. приложение).
В этом обработчике переменной i присваивается номер тега текущей (вызывающей событие OnClick) кнопки: int i = ((TButton*)Sender)->Tag;
После этого в качестве обработчика события OnClick каждой из последующих кнопок назначьте обработчик щелчка по первой кнопке - Button1Click (воспользуйтесь выпадающим списком реализованных обработчиков на вкладке Events инспектора объектов (Object Inspector).
P.S. С помощью кнострукции ((TButton*)Sender)-> можно получить доступ к любому свойству текущей (щёлкнутой) кнопки. Например, дополните обработчик, приведённый в приложении, следующей строкой и посмотрите, что получится:

((TButton*)Sender)->Caption = "Щёлкнуто!";

Удачи!

Приложение:

Ответ отправил: Dr_Andrew (статус: Студент)
Ответ отправлен: 12.07.2008, 13:40
Оценка за ответ: 5
Комментарий оценки:
Спасибо!


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.99 RC 5.0 от 08.07.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное