Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2015, 21:05   #1
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию калькулятор-2, проблемы в коде С++

cpp
Код:
TForm1 *Form1;
float ac;
int op,fd;
#define WBTN 35
#define HBTN 20
#define DXBTN 6
#define DYBTN 6
char btnText[] = "789+468-123=00.c";
#define CM -1 //запятая
#define EQ -2 // "="
#define PL -3 // "+"
#define MN -4 //"-"
#define CL -5 // "C"
int btnTag[] = {7,8,9,PL,4,5,6,MN,1,2,3,EQ,0,0,CM,CL};
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{  int left,top;
top = 48;
int k = 0 ;
for (int i = 0; i < 4; i++) {
	left = 8;
	for ( int j = 0; j < 4; j++) {
	btn[k] = new TSpeedButton(Form1); /*E2451 Undefined symbol 'btn'
new =  E2303 Type name expected 
(Form1)=  E2379 Statement missing ;  */  
 	btn[k]->Parent = Form1;
	btn[k]->Left = left;
	btn[k]->Top = top;
	btn[k]->Width = WBTN;
	btn[k]->Higtn = HBTN;
//	btn[k]->Flat = true;
	btn[k]->Font->Color = clNavy;
	btn[k]->Caption = btnText[k];
	btn[k]->Tag = btnTag[k];
	btn[k]->OnClick = btnClick;
	k++;
	left = left + WBTN + HBTN;
	}
	top = top + WBTN + HBTN;
}
  btn[13]->Visible = false; //E2451 Undefined symbol 'btn'
  btn[12]->Width = 2 * WBTN + DXBTN;

  op = EQ;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnClick(TObject *Sender)
{
	TSpeedButton *btn; /* E2188 Expression syntax +E2451 Undefined symbol 'btn'*/
  
int id;
btn = (TSpeedButton*)Sender;
id = btn->Tag;
if (id > 0 ) {
	if (fd == 0) {
	StaticText1->Caption = btn->Tag;
	fd = 1;
	}
	else {
		StaticText1->Caption = StaticText1->Caption +btn->Tag;
	return;
	} }
 if (id == 0) {
	if(StaticText1->Caption != "0") {
		StaticText1->Caption = StaticText1->Caption +btn->Tag;   }
		return;
	  }
 if (id == CM) {
	 if (StaticText1->Caption.Pos(",") == 0) {
	 StaticText1->Caption = StaticText1->Caption + ",";
	 fd = 1;}
	 return;
	 }
if (id == CL ) {
 ac = 0;
 id = EQ;
 fd = 0;
 StaticText1->Caption = 0;
 return;
 }
 float op2;
 op = StrToFloat ( StaticText1->Caption);
 switch (op) {
	case EQ: ac = op2; break;
	case PL: ac += op2; break;
	case MN: ac -= op2; break;
 }
 StaticText1->Caption = FloatToStrF (ac, ffGeneral,15,6);
 op = id;
 fd = 0;
}
//------------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
	for (int i = 0; i < 16; i++) {
		delete btn[i]; //E2451 Undefined symbol 'btn'
	}
}
h
Код:
class TForm1 : public TForm
{
__published:     	// IDE-managed Components
TStaticText *StaticText1;

private:	// User declarations
TSpeedButton (*btn[16]);
void __fastcall btnClick(TObject *Sender);
public:		// User declarations
	__fastcall TForm1(TComponent* Owner);
	void __fastcall TForm1::FormDestroy(TObject *Sender);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Как убрать ошибки, все делаю по книге... Ошибки обозначил в первом коде (cpp) в виде комментариев.
Dima-91 вне форума Ответить с цитированием
Старый 22.07.2015, 03:42   #2
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Подправил:

cpp
Код:
TForm1 *Form1;
float ac;
int op,fd;
#define WBTN 35
#define HBTN 20
#define DXBTN 6
#define DYBTN 6
char btnText[] = "789+468-123=00.c";
#define CM -1 //çàïÿòàÿ
#define EQ -2 // "="
#define PL -3 // "+"
#define MN -4 //"-"
#define CL -5 // "C"
int btnTag[] = {7,8,9,PL,4,5,6,MN,1,2,3,EQ,0,0,CM,CL};
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{  int left,top;
top = 48;
int k = 0 ;
for (int i = 0; i < 4; i++) {
	left = 8;
	for ( int j = 0; j < 4; j++) {
	btn[k] = new TSpeedButton(Form1); /*E2451 Undefined symbol 'btn'
new =  E2303 Type name expected 
(Form1)=  E2379 Statement missing ;  */  
 	btn[k]->Parent = Form1;
	btn[k]->Left = left;
	btn[k]->Top = top;
	btn[k]->Width = WBTN;
	btn[k]->Height = HBTN;
//	btn[k]->Flat = true;
	btn[k]->Font->Color = clNavy;
	btn[k]->Caption = btnText[k];
	btn[k]->Tag = btnTag[k];
	btn[k]->OnClick = btnClick;
	k++;
	left = left + WBTN + HBTN;
	}
	top = top + WBTN + HBTN;
}
  btn[13]->Visible = false; //E2451 Undefined symbol 'btn'
  btn[12]->Width = 2 * WBTN + DXBTN;

  op = EQ;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnClick(TObject *Sender)
{
	TSpeedButton *btn; /* E2188 Expression syntax +E2451 Undefined symbol 'btn'*/
  
int id;
btn = (TSpeedButton*)Sender;
id = btn->Tag;
if (id > 0 ) {
	if (fd == 0) {
	StaticText1->Caption = btn->Tag;
	fd = 1;
	}
	else {
		StaticText1->Caption = StaticText1->Caption +btn->Tag;
	return;
	} }
 if (id == 0) {
	if(StaticText1->Caption != "0") {
		StaticText1->Caption = StaticText1->Caption +btn->Tag;   }
		return;
	  }
 if (id == CM) {
	 if (StaticText1->Caption.Pos(",") == 0) {
	 StaticText1->Caption = StaticText1->Caption + ",";
	 fd = 1;}
	 return;
	 }
if (id == CL ) {
 ac = 0;
 id = EQ;
 fd = 0;
 StaticText1->Caption = 0;
 return;
 }
 float op2;
 op = StrToFloat ( StaticText1->Caption);
 switch (op) {
	case EQ: ac = op2; break;
	case PL: ac += op2; break;
	case MN: ac -= op2; break;
 }
 StaticText1->Caption = FloatToStrF (ac, ffGeneral,15,6);
 op = id;
 fd = 0;
}
//------------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
	for (int i = 0; i < 16; i++) {
		delete btn[i]; //E2451 Undefined symbol 'btn'
	}
}
//---------------------------------------------------------------------------
h
Код:
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Buttons.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
        TStaticText *StaticText1;
        void __fastcall FormDestroy(TObject *Sender);
private:	// User declarations
        TSpeedButton* btn[16];
        void __fastcall btnClick(TObject *Sender);
public:		// User declarations
        __fastcall TForm1(TComponent* Owner);
};
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 22.07.2015, 09:10   #3
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию

Не помогло, остались те же ошибки.
Dima-91 вне форума Ответить с цитированием
Старый 22.07.2015, 09:16   #4
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию

TSpeedButton(*btn[16]) - это пишет, для
Код:
TSpeedButton* btn[16];
пробывал изменять до btn, но тогда не правильное имя ошибку выдает. ( TSpeedButton *btn[16]; )

Последний раз редактировалось Dima-91; 22.07.2015 в 09:23.
Dima-91 вне форума Ответить с цитированием
Старый 22.07.2015, 17:00   #5
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Какие сейчас ошибки выдает?
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 22.07.2015, 21:30   #6
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию

Код:
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{  int left,top;
top = 48;
int k = 0 ;
for (int i = 0; i < 4; i++) {
	left = 8;
	for ( int j = 0; j < 4; j++) {
	btn[k] = new TSpeedButton(Form1); /*E2451 Undefined symbol 'btn'
new =  E2303 Type name expected 
(Form1)=  E2379 Statement missing ;  */  
 	btn[k]->Parent = Form1;
	btn[k]->Left = left;
	btn[k]->Top = top;
	btn[k]->Width = WBTN;
	btn[k]->Height = HBTN;
//	btn[k]->Flat = true;
	btn[k]->Font->Color = clNavy;
	btn[k]->Caption = btnText[k];
	btn[k]->Tag = btnTag[k];
	btn[k]->OnClick = btnClick;
	k++;
	left = left + WBTN + HBTN;
	}
	top = top + WBTN + HBTN;
}
  btn[13]->Visible = false; //E2451 Undefined symbol 'btn'
  btn[12]->Width = 2 * WBTN + DXBTN;

  op = EQ;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnClick(TObject *Sender)
{
	TSpeedButton *btn; /*  E2451 Undefined symbol 'btn'*/
  
int id;
btn = (TSpeedButton*)Sender; //E2188 Expression syntax
id = btn->Tag;
if (id > 0 ) {
	if (fd == 0) {
	StaticText1->Caption = btn->Tag;
	fd = 1;
	}
	else {
		StaticText1->Caption = StaticText1->Caption +btn->Tag;
	return;
	} }
 if (id == 0) {
	if(StaticText1->Caption != "0") {
		StaticText1->Caption = StaticText1->Caption +btn->Tag;   }
		return;
	  }
 if (id == CM) {
	 if (StaticText1->Caption.Pos(",") == 0) {
	 StaticText1->Caption = StaticText1->Caption + ",";
	 fd = 1;}
	 return;
	 }
if (id == CL ) {
 ac = 0;
 id = EQ;
 fd = 0;
 StaticText1->Caption = 0;
 return;
 }
 float op2;
 op = StrToFloat ( StaticText1->Caption);
 switch (op) {
	case EQ: ac = op2; break;
	case PL: ac += op2; break;
	case MN: ac -= op2; break;
 }
 StaticText1->Caption = FloatToStrF (ac, ffGeneral,15,6);
 op = id;
 fd = 0;
}
//------------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
	for (int i = 0; i < 16; i++) {
		delete btn[i]; //E2451 Undefined symbol 'btn'
	}
}
//---------------------------------------------------------------------------
Вроде как такие же, что и были.
Dima-91 вне форума Ответить с цитированием
Старый 22.07.2015, 21:49   #7
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

а файл заголовков изменили?

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
h
Код:
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Buttons.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
        TStaticText *StaticText1;
        void __fastcall FormDestroy(TObject *Sender);
private:	// User declarations
        TSpeedButton* btn[16];
        void __fastcall btnClick(TObject *Sender);
public:		// User declarations
        __fastcall TForm1(TComponent* Owner);
};
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 23.07.2015, 08:35   #8
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию

Спасибо помогло, не хватало библиотеки
Код:
#include <Vcl.Buttons.hpp>
Теперь проблема с скомпилированным файлом, не решает, спасибо за помощь)
Dima-91 вне форума Ответить с цитированием
Старый 23.07.2015, 09:37   #9
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию

Все получилось, нашел ошибки в коде. Спасибо за помощь.
cpp
Код:
TForm1 *Form1;
float ac;
int op,fd;
#define WBTN 35
#define HBTN 20
#define DXBTN 6
#define DYBTN 6
char btnText[] = "789+456-123=00.c";
#define CM -1 //запятая
#define EQ -2 // "="
#define PL -3 // "+"
#define MN -4 //"-"
#define CL -5 // "C"
int btnTag[] = {7,8,9,PL,4,5,6,MN,1,2,3,EQ,0,0,CM,CL};
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{  int left,top;
top = 48;
int k = 0;
for (int i = 0; i < 4; i++) {
	left = 8;
	for ( int j = 0; j < 4; j++) {
	btn[k] = new TSpeedButton(Form1);
	btn[k]->Parent = Form1;
	btn[k]->Left = left;
	btn[k]->Top = top;
	btn[k]->Width = WBTN;
	btn[k]->Height = HBTN;
//	btn[k]->Flat = true;
	btn[k]->Font->Color = clNavy;
	btn[k]->Caption = btnText[k];
	btn[k]->Tag = btnTag[k];
	btn[k]->OnClick = btnClick;
	k++;
	left = left + DXBTN + WBTN;
	}
	top = top + DYBTN + HBTN;
}
  btn[13]->Visible = false;
  btn[12]->Width = 2*WBTN + DXBTN;

  op = EQ;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnClick(TObject *Sender)
{
	TSpeedButton *btn;
int id;
btn = (TSpeedButton*)Sender;
id = btn->Tag;
if (id > 0 ) {
	if (fd == 0) {
	StaticText1->Caption = btn->Tag;
	fd = 1;
	}
	else {
		StaticText1->Caption = StaticText1->Caption + btn->Tag;
		  }
	return;
	 }
 if (id == 0) {
	if(StaticText1->Caption != "0") {
		StaticText1->Caption = StaticText1->Caption +btn->Tag;   }
		return;
	  }
 if (id == CM) {
	 if (StaticText1->Caption.Pos(",") == 0) {
	 StaticText1->Caption = StaticText1->Caption + ",";
	 fd = 1;}
	 return;
	 }
if (id == CL ) {
 ac = 0;
 id = EQ;
 fd = 0;
 StaticText1->Caption = 0;
  return;
 }
 float op2;
 op2 = StrToFloat ( StaticText1->Caption);
 switch (op) {
	case EQ: ac = op2; break;
	case PL: ac += op2; break;
	case MN: ac -= op2; break;
 }
 StaticText1->Caption = FloatToStrF (ac, ffGeneral,15,6);
 op = id;
 fd = 0;
}
//------------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
	for (int i = 0; i < 16; i++) {
		delete btn[i];
	}
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
StaticText1->Caption = "0";
}
//---------------------------------------------------------------------------
h
Код:
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.Buttons.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:     	// IDE-managed Components
	TStaticText *StaticText1;

  void __fastcall FormDestroy(TObject *Sender);
	void __fastcall FormCreate(TObject *Sender);
private:	// User declarations
	TSpeedButton (*btn[16]);
void __fastcall btnClick(TObject *Sender);
public:		// User declarations
	__fastcall TForm1(TComponent* Owner);

};
Dima-91 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с vba (проблемы создания макросов) Leojse Microsoft Office Excel 4 26.12.2013 20:09
Калькулятор на Паскале (проблемы на Linux) Rebel666 Паскаль, Turbo Pascal, PascalABC.NET 3 13.12.2011 15:56
проблемы в коде в делфи ilev Помощь студентам 13 04.12.2011 00:06
Работа со списками. проблемы в коде madlur Помощь студентам 2 02.04.2011 19:37
Калькулятор на с++ Banner Помощь студентам 2 07.02.2011 11:42