在oncreate中动态生成的对象为什么不是在ondestroy中释放?(100分)

  • 主题发起人 主题发起人 afeng1
  • 开始时间 开始时间
A

afeng1

Unregistered / Unconfirmed
GUEST, unregistred user!
按照书上的说法要这么做才行,但却不能通过编译,改成在oncreate中释放就行了,为什么?
如:
void __fastcall TForm1::FormCreate(TObject *Sender)//在主窗口表单对象创建之前
//将硬盘的位图装入到图标队列中
{
AnsiString sPath="e://";
TImageList *ImageList1;
TSearchRec sr;
Graphics::TBitmap *Bitmap=new Graphics::TBitmap();
if(FindFirst(sPath+"*.bmp",0,sr)==0)
{
if(sr.Attr==32)
{
Bitmap->LoadFromFile(sPath+"//"+sr.Name);
ImageList1->Add(Bitmap,NULL);
}
}
while(FindNext(sr)==0)
{
if(sr.Attr==32)
{
Bitmap->LoadFromFile(sPath+"//"+sr.Name) ;
ImageList1->Add(Bitmap,NULL);
}
}
FindClose(sr);
delete Bitmap;
delete ImageList1;
}
如果在ondestroy中释放,就会告知没有定义的符号。
另外,在上面的程序中下面语句不能通过,为什么?在什么时候用new,什么时候不需要?
new *ImageList1=new TImageList();
 
最后一问new *ImageList1=new TImageList();
中,括号里少了一个this,其它的疑问还请大家解答
 
后退
顶部