Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/46: Рейтинг темы: голосов - 46, средняя оценка - 4.70
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628

Обработка событий кнопок Button

17.04.2010, 12:51. Показов 8778. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!!!
Во время создания формы создаются 10 кнопок таки образом:
C++
1
2
3
4
5
6
7
8
    for(int i = 1; i <= 11; i++)
    {
        TButton *a = new TButton(Form21);
        a->Parent = Form21;
        a->Caption = IntToStr(i);
        a->Left = 10;
        a->Top = i * 30;
    }
Как по отдельности обрабатывать события каждой из этих кнопок, например OnClick?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.04.2010, 12:51
Ответы с готовыми решениями:

Обработка событий для кнопок в RAD Studio 10.3
Доброе утро! Я учусь программировать на RAD Studio 10.3 и GLScene 1.8. Я добавил в проект две камеры, куб, кольцо, два источника освещения...

Изменения цвета кнопок Button or BitBtn
Всем доброго времени суток. Кто знает, как изменить цвет кнопки Button or BitBtn, в Button у меня не меняется даже цвет шрифта, а вот в...

Обработка событий
Подскажите пожалуйста,как сделать какое -нибудь действие например ShowMessage для OnClick динамически создаваемых кнопок ...

10
 Аватар для delfamur
42 / 24 / 3
Регистрация: 16.03.2010
Сообщений: 199
17.04.2010, 13:14
а не проще создать заранее и прописать необходимое? остается управлять только видимостью, если надо

Добавлено через 3 минуты
просто к конкретно 1, допустим, сложно обратиться (в смысле конкретно для нее код прописать)
0
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628
17.04.2010, 13:20  [ТС]
Я просто хочу узнать каким образом обрабатывать события компонентов, создаваемых таким образом...

а не проще создать заранее и прописать необходимое? остается управлять только видимостью, если надо
Здесь кнопок 10, а если надо будет создать 1000 кнопок?
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
17.04.2010, 13:26
VtaMC, при создании кнопки нужно просто настроить событие OnClick на нужную тебе функцию-обработчик.
0
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628
17.04.2010, 13:28  [ТС]
CyBOSSeR, приведи, пожалуйста, пример, в теории не очень представляю.
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
17.04.2010, 13:43
VtaMC, с удовольствие привел бы пример, но для этого надо поставить Builder, чего делать я совершенно не хочу.
У кнопок есть свойство OnClick, которая является указателем на функцию вызываемую при клике. В это свойство нужно занести указатель функции-обработчика.
1
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628
17.04.2010, 13:45  [ТС]
Т. е. так
C++
1
a->Click = function;
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
17.04.2010, 13:49
VtaMC, скорее всего, попробуй. Если будет ругаться приведи код и список ошибок.
0
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628
17.04.2010, 15:10  [ТС]
Делаю так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
TNotifyEvent func(int a)
{
    ShowMessage(a);
}
 
void __fastcall TForm21::FormCreate(TObject *Sender)
{
    for(int i = 1; i <= 11; i++)
    {
        TButton *a = new TButton(Form21);
        a->Parent = Form21;
        a->Caption = IntToStr(i);
        a->Left = 10;
        a->Top = i * 30;
        a->OnClick = (TNotifyEvent)func(i);
    }
}
Функция вызывается при создании формы 10 раз и в последствии если нажать на кнопку ничего не происходит...
0
 Аватар для delfamur
42 / 24 / 3
Регистрация: 16.03.2010
Сообщений: 199
17.04.2010, 15:32
про это я и говорил
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
17.04.2010, 15:39
Цитата Сообщение от VtaMC Посмотреть сообщение
ничего не происходит...
попробуй так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    for ( int i = 0; i < 10; ++i )
    {
      But_tonN[i] = new TButton(this);
      But_tonN[i]->Parent = Form1;
      But_tonN[i]->Caption = "But_ton"  + IntToStr(i);
      But_tonN[i]->Tag = i ;
      
      But_tonN[i]->OnMouseDown = But_tonNMouseDown;
 
      But_tonN[i]->ShowHint = true;
      But_tonN[i]->Hint = "hint for " + But_tonN[i]->Caption;
 
      But_tonN[i]->Left = 20;
      But_tonN[i]->Top = 10 + i * (33 + 10);
      But_tonN[i]->Height = 33;
      But_tonN[i]->Width = 150;
    }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::But_tonNMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y)
{
    TButton* nBtn;
    nBtn = (TButton*)Sender;
 
    if ( Button == mbLeft )
    nBtn->Left -= 24;
 
    if ( Button == mbRight )
    nBtn->Left += 24;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
    delete [] But_tonN;
}
//---------------------------------------------------------------------------
Unit1.h
C++
1
2
3
4
private:
    TButton *But_tonN[10];
    void __fastcall But_tonNMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.04.2010, 15:39
Помогаю со студенческими работами здесь

обработка событий Builder 6 c++
Есть такой поломанный код, пожалуйста киньте примеры подобного, искал в интернете ничего не нашел. struct TEvent {int what ...

Обработка событий кнопки
доброго времени суток сделал такой код для кнопки: void __fastcall TForm1::Button1Click(TObject *Sender) { float m, n; float...

Неверная обработка событий
Неверно обрабатываются события CheckListBox. При постановки галочки выводится сообщение удалено, за место добавлено. Т.е. происходит...

Обработка событий элементами формы
Среда - Borland C++. Элемент формы Button имеет обработчик события на Clic где код работы с WINAPI - записать в поток потом читать из...

Обработка кнопок MessageBox
Что нужно писать , чтобы по нажатию кнопки на окне MessageBox выполнялось определенное действие ? Вот у меня есть код, как сделать чтобы по...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru