读书人

困惑小弟我的Timer控件的有关问题?已

发布时间: 2012-02-12 17:16:34 作者: rapoo

困惑我的Timer控件的问题?已经发好几个贴,没有得到正确的结果,再问问。
我程序里有5个Timer控件,在FormShow里执行的次序是:
Timer1,Timer2,Timer3,Timer4,Timer5.
Timer1执行5秒,void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
...//执行相关的操作
}
Timer1之后,再执行,Timer2,10秒钟,
void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
...//执行相关的操作
}
Timer2之后,再执行Timer3,也执行几秒钟,还有Timer4和Timer5。
我控制不好,始终打架冲突,本来明明要求是先执行Timer1 5秒钟,Timer2 10秒钟,结果Timer1执行的时候,Timer3,4,5都会触发,这是一个时间先后序列的问题,有高人帮我理理。
万分感谢!立即结贴

[解决办法]
不应该出现你说的情况

要不,你全部 Timer-> Enable 都等于 false
启动时 Timer1-> Enable = true;

Timer1 到时间后在 将 Timer2-> Enable = true;
Timer2 到时间后在 将 Timer3-> Enable = true;

以此类推,就不可能冲突了

还有,就是检查一下你的事件指向,是否都指向了该指向的函数。
[解决办法]
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
Timer1-> Enabled = true;// 构造函数中启动 Timer1
}
//---------------------------------------
void __fastcall TForm2::Timer1Timer(TObject *Sender)
{
Timer2-> Enabled = true;// 第一个到时后 启动第二个时钟
}
//---------------------------------------
void __fastcall TForm2::Timer2Timer(TObject *Sender)
{
Timer3-> Enabled = true;// 第二个到时后启动第三个时钟
}
//---------------------------------------
void __fastcall TForm2::Timer3Timer(TObject *Sender)
{
Timer4-> Enabled = true;
}
//---------------------------------------

读书人网 >C++ Builder

热点推荐