首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

作等待窗口的疑问

2013-07-08 
做等待窗口的疑问在上传文件前,我用下面的语句,显示了一个等待窗体FConWait : TFConWait.Create(Applicat

做等待窗口的疑问
在上传文件前,我用下面的语句,显示了一个等待窗体

FConWait := TFConWait.Create(Application); // 显示等待窗体
FConWait.Show;

…… //上传文件的代码

if assigned(FConWait) then FreeAndNil(FConWait); //完了后用这句释放等待窗体


上面的代码,在第一次上传时都很正常,在第二次上传时,在FreeAndNil(FConWait);这里报了内存错误,请问怎么写才正确的?
[解决办法]
打断点单步跑一下,观察下各个变量值的情况
把你上传的代码去掉,看问题是否还存在

我测试了下


procedure TForm1.btn1Click(Sender: TObject);
var
  fform: TForm;
  i: Integer;
begin
  fform := TForm.Create(Application);
  fform.Show;

  // 磨点时间
  for i := 0 to 999 do
    Caption := IntToStr(i);

  FreeAndNil(fform);
end;

没有问题,估计你出问题是在上传的代码里,或是在你TFConWait的定义里

顺便说下
FreeAndNil内部会调用free,free内部会判断对象是否为nil,所以assigned(FConWait)是多余的。
当然这跟你出错的问题无关

热点排行