这个C++程序错在哪里?

来源:百度知道 编辑:UC知道 时间:2024/09/21 14:30:47
void __fastcall TForm2::FormCreate(TObject *Sender)
{
AnsiString name[10];
int score[10];
int x=20,y=20,total=0;
float average;
name[0]="刘小东";score=[0]=93;
name[1]="陈文明";score=[1]=68;
name[2]="雷 勇";score=[2]=74;
name[3]="李 四";score=[3]=80;
name[4]="张 三";score=[4]=53;
name[5]="王 五";score=[5]=90;
name[6]="赵成功";score=[6]=76;
name[7]="贺原工";score=[7]=70;
name[8]="高正果";score=[8]=82;
name[9]="于海成";score=[9]=84;
Canvas->TextOut(x,y,"姓名");
Canvas->TextOut(x+100,y,"分数");
Canvas->TextOut(x,y+=20,"========================");
for(int i=0;i<10;i++)
{
Canvas->TextOut(x,y+=20,name[i]);
Canvas->TextOut(x+100,y,IntToStr(score[i]));
total+=score[i];
}
Canvas->TextOut(x,y+=20,"========================");
average=tot

你这提示的什么错误?
逻辑是没问题.
但是,有一个问题,你是用TextOut完成的输出,而且在窗口创建刚完成的时候,这时,窗口还没有显示。
当进行显示的时候,窗口又被刷新一次,你的内容就会默认被擦除(或者说被由来的动作覆盖)了。也就什么都看不见。
所以,你要这么做的画,最好放在Paint事件里面。

本人没有C++ Builder,只是从Windows窗体机制上给你分析了一下,有误的地方请指正。