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

各位老大,看看这是什么有关问题

2012-03-06 
各位老大,看看这是什么问题代码如下:#include IniFiles.hppvoid __fastcall TForm1::BitBtn2Click(TObje

各位老大,看看这是什么问题
代码如下:
#include <IniFiles.hpp>
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
  THashedStringList *iArray11=new THashedStringList();
  iArray11->Add("11111111");
  THashedStringList *A=(THashedStringList *)FindComponent("iArray11");
  Memo1->Lines->Add(A->Strings[0]);
}

编译正常,运行时Memo1->Lines->Add(A->Strings[0]);行出错,是什么原因?怎么解决?

[解决办法]
1.FindComponent只能查找Form上的控件,且只能找Component名字,非变量名,而THashedStringList不属于form上的,且它没有Name,所以不能用
2.你应该在Memo1->Lines->Add(A->Strings[0]);之前判一下有无找到:
 if (A==NULL)
{
ShowMessage("error");
return;
}
你的程序,由于FindComponent返回了NULL,所以会出错
[解决办法]
THashedStringList **iArray;
iArray = new THashedStringList*[1024];
for(int i=0; i<1024; i++)
{
iArray[i] = new THashedStringList();
}

//---删除
for(int i=0; i<1024; i++)
{
delete iArray[i];
}
iArray[0]->Add("11111111");
delete[] iArray;

热点排行