如何动态检测CheckBox?

zhushow 2008-10-16 02:10:52
BCB6.0程序中,界面内一个Buttom和CheckBox,CheckBox如选中,则在按下Buttom后循环工作,CheckBox取消后停止。
现在发现在进入循环后,无法点选CheckBox,具体代码如下:
void __fastcall TForm1::Button1Click(TObject *Sender)
{

int iFlag;
iFlag = 0;
Memo1->Lines->Add("Test Start....");
while(check)
{

iFlag++;
Memo1->Lines->Add(String(iFlag));
Sleep(1000);

}
Memo1->Lines->Add("Test End.");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
if(CheckBox1->Checked == true)
{
check = 1;
}
else
{
check = 0;
}
}
//---------------------------------------------------------------------------
...全文
64 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhushow 2008-10-16
  • 打赏
  • 举报
回复
收到,谢谢!
yumikoo 2008-10-16
  • 打赏
  • 举报
回复
我一般会把Application->ProcessMessages();放在sleep的上面,而不在下面……
yuanreid 2008-10-16
  • 打赏
  • 举报
回复
不好意思,刚才拼写少了一个s
Application->ProcessMessages();
yuanreid 2008-10-16
  • 打赏
  • 举报
回复
在循环中增加Application->ProcessMessage();
这样可以保证窗口消息可以继续被处理。


void __fastcall TForm1::Button1Click(TObject *Sender)
{

int iFlag;
iFlag = 0;
Memo1->Lines->Add("Test Start....");
while(check)
{

iFlag++;
Memo1->Lines->Add(String(iFlag));
Sleep(1000);
Application->ProcessMessage();

}
Memo1->Lines->Add("Test End.");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
if(CheckBox1->Checked == true)
{
check = 1;
}
else
{
check = 0;
}
}
//---------------------------------------------------------------------------

13,825

社区成员

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

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