求助定时器问题
我想5秒的时候发送个信号 15秒的时候发送个信号 20秒的时候发送个 信号,现在5秒和15秒的都可以,第20秒就不行,
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Timer1->Interval = 5000 ;
Timer1->Enabled = True ;
}
//---------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
ShowMessage("OK");
Timer1->Interval = 10000 ;
Timer1->Interval = 30000 ;
}
代码麻烦高手帮我改下谢谢
[解决办法]
我的可以的.首先你上面的FormCreate不变:
Timer1->Interval = 5000 ; //5秒1个信号
Timer1->Enabled = True ;
...
然后要不断发的话,改
case 4: //20s
ShowMessage("20S");
//Timer1->Enabled = false; //结束//这个不要
stat=1; //重新开始,5S一个
最后将上面ShowMessage改为你要执行的程序就可以了
[解决办法]
void __fastcall TForm1::Timer1Timer(TObject *Sender){ static int stat=0; stat++; switch(stat) { case 1: //5s Timer1->Interval = 5000 ; break; case 3: //15s Timer1->Interval = 15000 ; break; case 4: //20s Timer1->Interval = 20000 ; }}
[解决办法]
//---------------------------------------
int str=0; //1是5秒,1是10秒,2是20秒.....的标志
int sTime[3]={1000,2000,3000};//这里可存所有的时间
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Timer1->Interval=sTime[str];
Timer1->Enabled=true;
}
//---------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Timer1->Enabled=false; //先停止,也可以不停
if(str>=2)str=0; else str++; //判断是否超出设定的个数
Timer1->Interval =sTime[str]; //重置时间
ShowMessage("OK"); //显示你的信息或执行程序....
Timer1->Enabled=true; //重新计时
}
//---------------------------------------
如上改一下就行了!!