关于线程和窗体显示的问题?

daluobo 2002-10-11 06:32:46
我想在窗体显示的时候listview中增加数据,用线程控制数据的增加,可是在窗体上的listview数据不显示,但是当我用ListView1->Items->Count查看listview时不为0,这是什么原因?我应该怎么处理呢?
...全文
33 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
daluobo 2002-10-11
  • 打赏
  • 举报
回复
void __fastcall TSendParaThread::Execute()
{
FreeOnTerminate=true;
Application->ProcessMessages();
AnsiString SendMessStr;
//int SendMessNum;
HANDLE hEvents[1];
hEvents[0]=hEvent_WAIT;
HANDLE hEvents_SEND[2];
hEvents_SEND[0]=hEvent_CMGS;
hEvents_SEND[1]=hEvent_SEND_ERROR;
OpenEvent(EVENT_ALL_ACCESS,false,"COM_REC_WAIT");
OpenEvent(EVENT_ALL_ACCESS,false,"COM_REC_CMGS");
OpenEvent(EVENT_ALL_ACCESS,false,"COM_SEND_FAIL");
DWORD dwWaitResult;
TListItem * ListItem;
TQuery *LineofGSM=new TQuery(NULL);
LineofGSM->DatabaseName="gsmdata";
LineofGSM->SQL->Text="select * from gsm where line='"+LineStrforQuery+"'";
LineofGSM->Open();
//SendMessNum=LineofGSM->RecordCount;
while(!LineofGSM->Eof)
{
ListItem=m_SendInfrofrm->ListViewSendInfor->Items->Add();
ListItem->Caption=LineofGSM->FieldValues["gsmdescr"];
ListItem->SubItems->Add(LineofGSM->FieldValues["simno"]);
dwWaitResult = WaitForMultipleObjects(1,hEvents,FALSE,2000);
switch(dwWaitResult)
{
case WAIT_OBJECT_0 :
ResetEvent(hEvent_WAIT);
SendMessStr=MakeSendParaMeter(LineofGSM->FieldValues["simno"]);
WriteToCom(SendMessStr);
break;
case WAIT_TIMEOUT://超时
ListItem->SubItems->Add("下发失败");
LineofGSM->Next();
continue;
}
dwWaitResult = WaitForMultipleObjects(2,hEvents_SEND,FALSE,2000);
switch(dwWaitResult)
{
case WAIT_OBJECT_0 ://返回OK
ResetEvent(hEvent_CMGS);
ListItem->SubItems->Add("下发成功");
break;
case WAIT_OBJECT_0+1: //返回error
ListItem->SubItems->Add("下发失败");
LineofGSM->Next();
continue;
case WAIT_TIMEOUT://超时 ,下发失败
ListItem->SubItems->Add("下发失败");
LineofGSM->Next();
continue;
}
ListItem->SubItems->Add("下发失败");
LineofGSM->Next();
continue;
}
m_SendInfrofrm->SpeedButtonClose->Visible=true;
delete LineofGSM;
m_SendInfrofrm->SpeedButtonSendPara->Enabled=true;
m_SendInfrofrm->ListViewSendInfor->Refresh();
//ShowMessage(m_SendInfrofrm->ListViewSendInfor->Items->Count);
m_SendInfrofrm->ShowModal();
}
dolphin2001 2002-10-11
  • 打赏
  • 举报
回复
把你代码贴出来

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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