读书人

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

发布时间: 2012-03-06 20:47:55 作者: rapoo

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

读书人网 >C++ Builder

热点推荐