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

Обработка методов класса

06.09.2012, 13:20. Показов 1145. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет! Такая проблема: на форме ставлю две кнопки: по нажатию одной кнопки создаю с помощью конструктора элемент класса. Хочу, чтобы при нажатии второй кнопки выполнялся метод класса к созданному элементу, но так как элемент класса создан в другом обработчике прерывания (по-моему, так называется))), то во втором обработчике этот элемент класса не виден и метод не может быть применен. Подскажите, как сделать мне, чтоб метод класса применялся по нажатию второй кнопки?


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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
class Tank
{
 private: bool vrag;
          int speed;
          String name;
          int x,y;
 public:
 Tank(): vrag(0), speed(10), name("NoName")
 {};
 Tank(bool vrag, int speed, String name): vrag(vrag), speed(speed), name(name)
 {};
 //~Tank();
 void move_top(int y)
 {
   y+=1;
   y+=1;
 }
 void move_bottom(int y)
 { y-=1;}
 void move_left(int x)
 { x-=1;}
 void move_rigth(int x)
 { x+=1;}
};
 
//---------------------------------------------------------------------------
TForm1 *Form1;
//---------------------------------------------------------------------------
 
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
 
 
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)//обработчик нажатия первой кнопки
{
 String FirstName, TwoName;
 FirstName=Edit1->Text;
 TwoName=Edit2->Text;
 ShowMessage(FirstName);
 Tank A(1,4,FirstName);
 Tank B(0,6,TwoName);
 Tank C;
 A.move_top(10);
 A.move_bottom(10);
 /*
 extern A;
 A=move_top(10);
 */
}
 
 
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
  A.move_top(10);//??? как применить метод к элементу А??
}
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.09.2012, 13:20
Ответы с готовыми решениями:

Использование методов вне класса
Здравсвуйте программисты! Хочу вывести на экран 3 числа(8,9,10) , но почему-то не выводится. не скажите в чём может быть проблемма. Вот мой...

Обработка кода перед и после методов класса
Задача: Есть класс <?php class User { public function __constructor(){ /*Запись в лог*/ } public function one() {...

Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе работу этих методов
Реализация методов класса. Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе...

2
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
06.09.2012, 14:24
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
class Tank
{
 private: bool vrag;
          int speed;
          String name;
          int x,y;
 public:
 Tank(): vrag(0), speed(10), name("NoName")
 {};
 Tank(bool vrag, int speed, String name): vrag(vrag), speed(speed), name(name)
 {};
 //~Tank();
 void move_top(int y)
 {
   y+=1;
   y+=1;
 }
 void move_bottom(int y)
 { y-=1;}
 void move_left(int x)
 { x-=1;}
 void move_rigth(int x)
 { x+=1;}
};
 
 Tank *A = NULL;
 Tank *B = NULL;
 Tank *C = NULL;
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   String FirstName, TwoName;
   FirstName=Edit1->Text;
   TwoName=Edit2->Text;
   ShowMessage(FirstName);
 
 if ( A == NULL) //  ЕСЛИ ТАНК ЕЩЕ НЕ СОЗДАН
  A = new Tank(1,4,FirstName);     // СОЗДАТЬ
 
  if ( B == NULL)
  B = new Tank(0,6,TwoName);
 
  if ( C == NULL)
  C = new Tank();
 
  A->move_top(10);
  A->move_bottom(10);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
           if ( A != NULL)  A->move_top(30);   //  ЕСЛИ ТАНК СУЩЕСТВУЕТ
}
//---------------------------------------------------------------------------
 
//  ЕСЛИ форма закрывается освободим память 
 
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
                if ( A != NULL) delete A;
                if ( B != NULL) delete B;
                 if ( C != NULL)delete C;
}
0
Александр05
07.09.2012, 08:52
MrCold, спасибо за быстрый ответ!!! Буду разбираться.
Как появятся новые вопросы, обращусь снова к форумчанам)))

Добавлено через 12 часов 28 минут
Спасибо! Разобрался!
Подскажите, если не сложно)), как мне привязать созданные элементы класса к реальным объектам на форме - например к рисованой линии на форме или изображению. Чтоб метод класса (наприемер перемещение объекта класса) работал для этих линий и картинок на форме....
Заранее спасибо))
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.09.2012, 08:52
Помогаю со студенческими работами здесь

Реализовать ввод исходных данных, расчет и вывод данных в виде методов класса. В Main только создание объектов и вызов методов
Всем привет) помогите пожалуйста с заданием "Реализовать ввод исходных данных, расчет и вывод данных в виде методов класса. В Main только...

Как вынести описание методов вложенного класса за пределы класса?
Подскажите, пожалуйста, как мне вынести описание методов вложенного класса за пределы класса?

Наследование: Как мне определить любой из методов заданного класса внутри другого класса?
Добрый день, подскажите пожалуйста, что я делаю не так Есть файл Container.h в котором храню прототипы методов class Container ...

Вызов методов класса из двойного указателя на экземпляр класса
Добрый день! Как можно вызвать метод класса по двойному указателя на его экземпляр? struct Point { void getPoint(){}; ...

Как программно получить список методов класса, параметров этих методов и типов этих параметров?
можно для паблишед методов и свойств кстати. Суть в том, что делфи при вводе точки после имени объекта класса вываливает список методов из...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 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. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru