Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 11

Один обработчик для 9 кнопок

12.11.2015, 20:16. Показов 1874. Ответов 2

Студворк — интернет-сервис помощи студентам
Привет, ребята. Нужна Ваша помощь. Пишу небольшую обучающую программку. Вот в чем проблема. На форме имеется 9 кнопок, код для которых практически одинаковый. Меняется только цифра. Этот код для первой кнопки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TForm2::Button1Click(TObject *Sender)
{ if(Label1->Caption==""){
Label1->Caption=1;}
else {
Label1->Caption=1;}
if (Label1->Caption!=""){
Button1->Enabled=false;
Button2->Enabled=false;
Button3->Enabled=false;
Button4->Enabled=false;
Button5->Enabled=false;
Button6->Enabled=false;
Button7->Enabled=false;
Button8->Enabled=false;
Button9->Enabled=false;}
}
Вот в чём вопрос: Возможно ли как-нибудь создать один обработчик для этих девяти кнопок. Читала кое-что. Знаю, что можно использовать sender, но как?-я не могу разобраться.
Ребят, пожалуйста, помогите, кто знает.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.11.2015, 20:16
Ответы с готовыми решениями:

Один обработчик для 100 кнопок?
На форме есть 100 кнопок. Как сделать один раз для всех кнопок, чтобы не описывать нажатие для каждой конкретной кнопки сто раз: ...

Один обработчик для нескольких Image
Ребят подскажите плиз как работать с обработчиками компонентов а то ни где инфы нет "русскоязычной". Вопрос имеется несколько...

TMainMenu Один обработчик для нескольких пунктов
Всем доброго времени суток. Задача : Создать несколько подпунктов меню (лучше динамически) и создать для них один обработчик, в котором...

2
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
12.11.2015, 20:56
Пример:
C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
     for(int i=0; i < Form1->ComponentCount;i++)
     {
       if(Form1->Components[i]->ClassNameIs("TButton"))
      {
       ((TButton*)Form1->Components[i])->Enabled =CheckBox1->Checked?false:true;
      }
     }
}
//---------------------------------------------------------------------------
1
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
13.11.2015, 13:56
C++
1
2
3
4
5
6
7
void __fastcall TForm2::Button1Click(TObject *Sender)
{
    TButton* ButtonX= dynamic_cast<TButton*>(Sender);
    if(!ButtonX) return;
 
    ButtonX->Enabled= false;
}
Для отличия одной кнопки от другой можно использовать ButtonX->Name или ButtonX->Tag
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2015, 13:56
Помогаю со студенческими работами здесь

Обработчик цыклически созданных кнопок
здравствуйте, у меня следующая проблема, во время создания формы создаются кнопки таки образом:TButton *Button; int i; for (i = 1;...

Динамически создать 15 кнопок на форме и сделать общий обработчик OnClick
Здравствуйте, создаю 15 кнопок вот так: HWND hWnd = this-&gt;Handle; long hThisInstance = GetWindowLong(hWnd, GWL_HINSTANCE); int a =...

Один код для множества кнопок
Всем привет! Как использовать один код для множества кнопок? И при этом брать параметр из этой нажатой кнопки (его имя, или еще что-то) ...

Один обработчик для динамических кнопок
Кнопки создаются/удаляются, и у них один OnClickListener. Но при нажатии, надо получить текст именно с той кнопки на которую нажали. Как...

Один обработчик для нескольких кнопок
Вопрос: Как для калькулятора создать один обработчик для цифровых кнопок (0-9), чтобы для каждой не писать ....+1 (+2) и т.д.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru