一个C++builder程序问题多多,但不知错在哪里啊!!

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
class fly_shape{
private :
int x;int y;int speed;int status;TShape *obj;
public:
fly_shape(TComponent*AOwner,int x1,int y1,int sp):x(x1),
y(y1),speed(sp)
{
obj=new TShape(AOwner);
obj->Left=x;
obj->Top=y;
obj->Width=30;
obj->Height=30;
if(sp>30)
{
obj->Brush->Color=clPurple;
}
else
{
obj->Shape=stCircle;
status=0;
}
void active()

{ status=1;
obj->Parent=Form1;
}
void move()
{
if(status==1)
{
obj->Top-=speed;
if(obj->Top<0)
{
obj->Top=y;
}
}
} ;

}
//---------------------------------------------------------------------------
fly_shap*obj1[20];
void __fastcall TForm1::FormActivate(TObject *Sender)
{
randomize();
for(int i=0;i<20;i++)
{obj1[i]=new fly_shape(Form1,150+random(250),300,random(40)+10);

)
}
//---------------------------------------------------------------------------

int count=0;
void _fastcall TForm1::Timer1Timer(Tobject *Sender)
{
if(count<20)
{obj1[count]->active();
count++;
}
for(int i=0;i<20;i++)
{obj1[i]->move();}

}

//---------------------------------------------------------------------------
本来是想做一个随机产生不断上移的组件,但是编译失败。
[我搞了好久,但是不知道哪里错了,其实这只是一条例题,很多都是按照书上说的做的,但还是不知道哪里出错了,希望高手多多指教,谢谢!!!
提示的前面几条错误:
[C++ Error] Unit002.cpp(34): E2141 Declaration syntax error
[C++ Error] Unit002.cpp(49): E2139 Declaration missing ;
[C++ Error] Unit002.cpp(59): E2141 Declaration syntax error
[C++ Error] Unit002.cpp(64): E2451 Undefined symbol 'obj1'

你这个程序的语法完全错了,我给你改了一下
BCB不支持内部类的,所以不能在一个过程里声明类
而且for语句的结构也不对

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}

class fly_shape
{
private :
int x;
int y;
int speed;
int status;
TShape *obj;
public:
fly_shape(TComponent*AOwner,int x1,int y1,int sp):x(x1),y(y1),speed(sp)
{
obj=new TShape(AOwner);
obj->Left=x;
obj->Top=y;
obj->Width=30;
obj->Height=30;
if(sp>30)
{
obj->Brush->Color=clPurple;
}
else
{
obj->Shape=stCircle;
status=0;
}
}
void active()
{
status=1;
obj->Parent=Form1;
}
void move()
{
if(status==1)
{
obj->Top-=speed;
if(obj->Top<0)
{
obj->Top=y;
}
}
}

};

//---------------------------------------------------------------------------

fly_shape *obj1[20];

void __fastcall TForm1::FormActivate(TObject *Sender)
{
randomize();
for(int i=0;i<20;i++)
{
obj1[i]=new fly_shape(Form1,150+random(250),300,random(40)+10);
}
}
//---------------------------------------------------------------------------
int count=0;
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if(count<20)
{
obj1[count]->active();
count++;
}
for(int i=0;i<20;i++)
{
obj1[i]->move();
}

}
//---------------------------------------------------------------------------
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-08-29
提示什么错误,拣最前面的几条说就好了

c++ builder这种错误怎么解决
可能是以下原因:1、连接数据库时,直接按Ctrl F2退出导致;2、环境配置问题,Tools->Debugger Options->Event Log页选中Windows Messages的缘故,去掉勾选;3、某些杀毒软件的主动防御,当创建EXE文件时,“恶意行为检测”功能认为不安全。

C++ builder程序运行的时候出这个错误?
列表控件的下标越界了,或者是错误的引用了列表控件的行,单步运行一下,看看错误的位置,修改一下吧!

关于C++builder程序出错的问题
Void TChatServerForm::SetServerStatus(ServerStatus_serverstatus i){ } 还有,声明的私有的函数,最好加__fastcall,这样在编译的时候会认为是类内部调用的函数,加快执行速度,但是公有函数不可以这样声明,外部调用的时候会出错的 上例写为void __fastcall TChatServerForm::SetServerStatus(ServerStatu...

C++ builder 项目打不开,出现如图错误是怎么回事
你打开的工程问题,LIb库的路径选项不对了,需要一个列表参数

C++builder运行出现这样的问题怎么办
1、直接使用你的BCB建一个最简单的单窗口VCL应用,然后进行编译,看是否正常。如果不正常,请重新安装BCB。2、如果自建应用可以完成编译,说明安装没有问题,将别人的代码看懂,并将别人的代码中的关键部分复制入自已建立的应用中,然后进行编译,当然,注意用到了相关的控件的话,要对应的进行补充。3、...

关于C++Builder 6的问题 在线等回答
楼主的情况本人也遇到过!错误的原因应该是c++builder的链接错误!一般出现这种错误是由于您没有正确安装C++Builder 或者没有成功安装某个组件导致编译的时候链接错误!如果是链接错误只好重新安装编译软件!建议全部安装C++Builder(一般有6张碟 最少有两张)以上意见仅供参考!

c++ builder 出现错误问题
c++ builder 出现错误问题 20 我的BCB出现错误了。我仅仅是做一个BUTTON,然后RUN,然后出现ERROR:unabletoopenfile"sysinit.obj".如果打开以前保存的bpr文件,一运行又会出现许多的错误。[C++Error]hi.cpp(11):E... 我的BCB出现错误了。我仅仅是做一个BUTTON,然后RUN,然后出现ERROR:unable to open file"sysinit...

C++ Builder运行时候出错了
没有解决的外部符号TAn_CIntegral::GetSP(double, double&, double&, double&),该符号在C:\\DOCUMENTS AND SETTINGS\\ADMINISTRATOR\\MY DOCUMENTS\\C++ BUILDER 2009\\PROJECTS\\DEBUG\\FILE822.OBJ中被引用。即:TAn_CIntegral类的GetSP函数没有定义,这个函数在FILE822.cpp中被调用。

C++ Builder 运行错误
首先在内存中,char与unsigned char没有什么不同,都是一个字节,唯一的区别是,char的最高位为符号位,因此char能表示-128~127, unsigned char没有符号位,因此能表示0~255,这个好理解,8个bit,最多256种情况,因此无论如何都能表示256个数字。在实际使用过程种有什么区别呢?主要是符号位,但是...

C++Builder2006编程中出现的问题!
一种可能是BCB2006这个动态连接库本身漏洞,不过这个可能不大,因为这样的错误,在该软件开发一开始就会被捕捉到的。另一个可能是,在破解过程中出现的问题,因为破解版本不像正式发行版进行了充分的测试,它可能是在Win2000上完成的,但在winxp, winxp sp2上运行不太正常。还有一点就是,微软常常利用...

相似回答
大家正在搜