TThread idhttp image TList 组合IN FMX 出错

gdsthuman 2016-01-16 08:51:38
TList*ImageObj;

ThreadDownImage::Execute()
{

//IdHTTP1=new TIdHTTP(pForm);
//pForm->IdHTTP1->HandleRedirects=true;
//pForm->IdHTTP1->ReadTimeout=2000;
//pForm->IdHTTP1->ConnectTimeout=2000;
pForm->IdHTTP1->OnWork=IdHTTP1Work;
pForm->IdHTTP1->OnWorkBegin=IdHTTP1WorkBegin;
int i=pForm->ImagePart->Count;

if(i>0){
UnicodeString P;
for(int j=0;j<i;j++)
{
Count=j;
Synchronize(UpdateText);
P= pForm->ImagePart->Strings[j];
try{
ImageMemory=new TMemoryStream();
pForm->IdHTTP1->Get(P,ImageMemory);
pForm->ImageObj->Add(ImageMemory);

}

catch(Exception &e){
Synchronize(UpdateCaption);
}

}

Synchronize(UpdateButton);
}
delete IdHTTP1;

FreeOnTerminate=true;
}

pFrom窗口BUTTON函数内存出错;
TMemoryStream *ImageMemory=(TMemoryStream *)ImageObj->Items[ImageIndex];
Image1->BeginUpdate();
Image1->Bitmap->LoadFromStream(ImageMemory);
Image1->EndUpdate();

尝试过
try{
ImageMemory=new TMemoryStream();
pForm->IdHTTP1->Get(P,ImageMemory);
Fmx::Graphics::TBitmap*p=new Fmx::Graphics::TBitmap(ImageMemory);
pForm->ImageObj->Add(p);

}

catch(Exception &e){
Synchronize(UpdateCaption);
}


pFrom窗口BUTTON函数;
Fmx::Graphics::TBitmap*p=(Fmx::Graphics::TBitmap *)ImageObj->Items[ImageIndex];

Image1->BeginUpdate();
Image1->Bitmap=p;
Image1->EndUpdate();
程序卡在这里 Fmx::Graphics::TBitmap*p=new Fmx::Graphics::TBitmap(ImageMemory);
...全文
273 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧