0 / 0 / 1
Регистрация: 02.01.2012
Сообщений: 22
1

Обработка нажатия кнопки, Tag

28.03.2012, 12:47. Показов 2662. Ответов 9
Метки нет (Все метки)

Здравствуйте. На форме 54 кнопки, при нажатии на кнопку в массив должен передаваться её tag. Нашел вот это ((Button)sender)->Tag, а пример написания обработчика найти не могу.
Помогите новичку
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2012, 12:47
Ответы с готовыми решениями:

Обработка нажатия правой кнопки мыши
Вопрос по сабжу. Как реализовать на компоненте TPanel?

Обработка нажатия кнопки "Отмена" стандартного диалога SaveDialog
При закрытии моего приложения я методом Application->MessageBox предлагаю пользователю сохранить...

Обработка нажатия клавиш
как принимать нажатия клавиш, например Ctrl+A методы OnKeyPress или OnKeyDown работают если форма...

Ожидание нажатия кнопки!
Здравствуйте. Нужно сделать так, чтобы в коде ... F(...) // функция которая открывает 2 форму. На...

9
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
28.03.2012, 13:38 2
C++
1
int tag = ((TButton*)Sender)->Tag
0
Диссидент
Эксперт C
27317 / 17039 / 3765
Регистрация: 24.12.2010
Сообщений: 38,373
28.03.2012, 14:55 3
C++
1
2
3
4
5
6
if (tag==0) f0();
else if (tag==1) f1();
else if (tag==2) f2();
else if (tag==3 || tag==4) f34();
....
else it (tag==53) f53();
0
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
28.03.2012, 17:08 4
Цитата Сообщение от Байт Посмотреть сообщение
C++
1
2
3
4
5
6
if (tag==0) f0();
else if (tag==1) f1();
else if (tag==2) f2();
else if (tag==3 || tag==4) f34();
....
else it (tag==53) f53();
Честно говоря не ясно к чему этот код, но раз уж он тут - он должен быть правильным(нормальным):

C++
1
2
3
4
5
6
7
8
switch(tag){
case 0: f0(); break;
case 1: f1(); break;
case 2: f2(); break;
case3: case4: f34(); break;
....
case 53: f53(); break;
}
А вообще если функции эквивалентны, то нужно создать один обработчик для общего случая.
0
0 / 0 / 1
Регистрация: 02.01.2012
Сообщений: 22
28.03.2012, 20:33  [ТС] 5
функции эквивалентны. как создать один обработчик?
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
28.03.2012, 20:55 6
C++
1
MyArray[index] = ((TComponent*)Sender)->Tag;
0
0 / 0 / 1
Регистрация: 02.01.2012
Сообщений: 22
29.03.2012, 01:01  [ТС] 7
undefined symbol 'Sender'
как его нужно объявить?
0
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
29.03.2012, 09:32 9
Цитата Сообщение от pitbull45 Посмотреть сообщение
функции эквивалентны. как создать один обработчик?
Тут нет телепатов
Как я буду писать функцию общего случая, если понятия не имею в чем заключается ее задача?))
0
5 / 5 / 3
Регистрация: 18.10.2011
Сообщений: 156
29.03.2012, 15:00 10
Цитата Сообщение от pitbull45 Посмотреть сообщение
undefined symbol 'Sender'
как его нужно объявить?
Пример из моей старой программы:
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
int tagn;
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
 for (int i=0; i<32; i++)
   {
    NameBut[i]=i+1;
    NewButN[i] = new TSpeedButton(Form1);        
    NewButN[i]->Parent = Form1;
    NewButN[i]->Top = 20+24*i;
    NewButN[i]->Left = 10;
    NewButN[i]->Height = 22;
    NewButN[i]->Width = 113;
    NewButN[i]->Font->Height = -11;
    NewButN[i]->Font->Size = 10;
    NewButN[i]->Caption = i;
    NewButN[i]->Tag=i;
    NewButN[i]->OnClick = NewButNClick;
   }
...............................................................................
...............................................................................
void __fastcall TForm1::NewButNClick(TObject *Sender)                        
{
 tagn = ((TButton*)Sender)->Tag;
................................................................................
и делай дальше что хочешь)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2012, 15:00
Помогаю со студенческими работами здесь

Проверка нажатия кнопки
на форме есть 2 кнопки Button и Edit Если нажата кнопка 1, надо написать в эдит: нажата кнопка1,...

Ожидание нажатия кнопки
Доброго времени суток. Пробежался поиском по форуму, точного ответа не нашел. Представлю такое...

Имитация нажатия кнопки
Подскажите пожалуйста как можно программно нажать кнопку. То есть например при открытии удаленного...

Назначить обработчик нажатия кнопки
Приветствую всех. Подскажите, возможно ли назначить кнопке обработчик нажатия, у которого нет...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru