希望不是cb的bug?
我想动态生成一个frame。在工程中包含form1和frame2.form1有一button1。在form1的头文件中的pubic添加TFrame2 * frame1;form1的cpp文件中添加:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
frame1 = new TFrame2(this);
frame1->Parent = Form1;
frame1->BitBtn1->OnClick = aaa;
}
//------------------------------------------------------------------------
void __fastcall TForm1::aaa(TObject * Sender)
{
//TODO: Add your source code here
delete frame1;
frame1=0;
}
问题就是:当frame1上的bitbtn控件数目大于2时,(环境为cb5+win2000,或cb6+win2000或cb6+win98)当按button1创建frame,再删除frame后,第二次创建frame再删除时,将出错。错误信息为"access violation at address 40003c89 in module "vcl50.bpl"(cb6为vcl60.bpl").利用中断跟踪在执行aaa中的frame1=0;之后。而bitbtn少于3个或其他控件(如label、button等)都不会出错。cb5+win98偶尔出现错误。
这是怎么回事?恳请各位老大告诉我。