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

dialog的button事件中不能写this->close()解决方案

2012-02-17 
dialog的button事件中不能写this-close()我的FormClose事件是删除Dialog 指针。Vdlg 是一个对话框对象指针

dialog的button事件中不能写this->close()
我的FormClose事件是删除Dialog 指针。 Vdlg 是一个对话框对象指针的向量。name和typename是对话框指针的字符串标记 我做的是聊天程序。  
void __fastcall TChatsDlg::FormClose(TObject *Sender, TCloseAction &Action)
{
  String title = this->Caption;
  int pos = title.Pos("聊天");
  String name = title.SubString(3, pos - 3);

  if(frmMain->Vdlg.empty())
  {
  return ;
  }
  for(int i = 0; i != frmMain->Vdlg.size(); ++i)
  {
  if(frmMain->Vdlg[i].typeName == name)
  {
  if(!frmMain->Vdlg[i].typedlg->Memo1->Lines->Text.IsEmpty())
  {
  this->Memo1->Lines->SaveToFile(ExtractFilePath(Application->ExeName)+FormatDateTime("yyyymmddhhmmss",Now())+".log");
  }
  delete frmMain->Vdlg[i].typedlg;
  frmMain->Vdlg.erase(frmMain->Vdlg.begin() + i);
  break;
  }
  }
}

如题, 为什么一写就出现错误: Access violation at address 40107D8F in module ‘vcl60.bpl’ 。 read of address 01339188.


[解决办法]
解决了就好,明白了原因,继续提高

热点排行