首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

难以捉摸的Timer解决方案

2012-02-08 
难以捉摸的Timer一个Timer的时间间隔设置为1s,然后在其中放入如下代码:MessageDlg(IntToStr(i),mtInformat

难以捉摸的Timer
一个Timer的时间间隔设置为1s,然后在其中放入如下代码:
MessageDlg(IntToStr(i),mtInformation, TMsgDlgButtons() << mbOK, 0);
i++;

我在一个Button1的click函数中测试了一下,MessageDlg要等用户点击ok后才返回,才能继续执行后面的代码。
可是上面的Timer程序运行时,会连续弹出对话框,以此提示1、2、3……

为什么?
 



[解决办法]
不是多线程。Timer占用的是主线程。
[解决办法]
这样也行:
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
static bool Enter = false;

if( Enter )return;

Enter = true;

MessageDlg(IntToStr(i),mtInformation, TMsgDlgButtons() << mbOK, 0);
i++;

Enter = false;
}

热点排行