大家帮忙看一下这个调用窗体的错误
我要在一个窗体的Image中中循环显示几张图片,第一次调用没有问题,可是再次调用就会报错,错误信息为:Project *.exe raised exception class EAccessViolation with message 'Access vioation at adress 00000000.Read of adress 00000000 '.Process stopped.
以下是我的代码:
新建一个窗体:
TForm* show_intro_form=new Tshow_intro_form(this);
show_intro_form-> ShowModal();
窗体显示时的代码:
start_show_list-> LoadFromFile( "start_show\\start_show.txt ");
start_show_count=start_show_list-> Count;
if(change_pic-> Enabled==0)
change_pic-> Enabled=1;
计时器代码:
if(run_time==start_show_count) run_time=0;
String file_name= " ";
file_name=start_show_list-> Strings[run_time];
Image1-> Picture-> LoadFromFile(file_name);
run_time++;
[解决办法]
原因不太明显,如果能用F7单步跟踪到是哪句代码的话,就好分析多了。
建议看看这两点:
1、你的show_intro_form是不是属于自选创建的TForm,如果是,则把这个show_intro_form从自动创建Form中去掉。(在哪里去,不用说了吧,就在Project的Options中)
2、修改一下创建窗口的代码:
> > TForm* show_intro_form=new Tshow_intro_form(this);
> > show_intro_form-> ShowModal();
改为
TForm* frmShowIntro=new Tshow_intro_form(NULL);//修改一下Form的变量名
try
{
frmShowIntro-> ShowModal();
}
_finally
{
delete frmShowIntro;
}
3.注意正确初始化 run_time 这个计数嚣的值
[解决办法]
你按照我的说法改正你的程序了么?错误的提示还是和原来一样么?你在显示完一次窗体以后,调用delete删除你的窗体了么?
[解决办法]
最好贴完整的代码来看看!
[解决办法]
请提供完整的代码!