各位老大,看看这是什么问题
代码如下:
#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;