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

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

17.04.2010, 12:51. Показов 8663. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru