关于TTimer的问题。百分!!!!!

时间:2022-04-20 23:17:52
请问如果有以下TTImer
TTimer * m_Timer;
m_Timer->Interval=3000;
//-----------------------
假设现在开始计时
当时间过去1000时,发生m_Timer->Enabled=false;
又过了1000
再有m_Timer->Enabled=true;
那么此刻请问还有多少时间出发TTimer->OnTimer()?
是1000还是3000?

21 个解决方案

#1


1000

#2


怎么能证明你的结论呢?举个简单的示例程序证明吧

#3


应该是3000吧

#4


3000
肯定

#5


3000 is OK

#6


已经变成false了,怎么会触发OnTimer事件呢?

时间可能是OO

#7


当然是3000了,每次开始由enable开始计时

#8


1000 or 3000?
What do you want to?

#9


当然是3000了!

#10


是3000,我刚用过TTimer

#11


3000 
当m_Timer->Enabled=true&&TTimer->OnTimer()触发

#12


3000,当Enabled为true时,才开始记时。

#13


同意你们说的
3000

#14


我不明白 已经设置为3000了

为何会在1000触发呢

TTimer 本来是 m_Timer的类名 怎么混为一谈了呢

再说这种事写个程序测试一下不就OK了 还需要百分么

看来我真是赶不上形势啦

学习 学习

@_@

#15


逻辑好模糊!!
用两个TIMER不是更用的控制吗?

#16


3000

#17


我只是想弄清楚,TTimer的特性,是不是有“记忆性”,在某些场合还是很重要的。比如你用手机输入英文(以Nokia3330/3310的英文输入为例,因为它最简单)的时候,按键之后在一段时间内(设为TimeK),如果没有下一步动作将视为确认当前字母。

诺基亚的输入法是这样的:某一键(例如假设为1)上面有三个或四个字母,按一下为A,两下为b,三下为c.此时的三个字母中的某一个进入“待选”状态,即闪烁。此时如果按下某键会有两种情况:
1、按下的是刚才的键,为“1”,则切换到下一个字母的“待选”状态
a---->b-------->c
|___<_______<___|

2、如果此时按下的是另外的键,则1建当前字母作为确认处理,并且把新键得相应字母进入“待选”状态。
3、如果没有击键事件发生,则当前字母作为确认输出

我详细说明我的目的以及问题:毫无疑问,我肯定需要一个TTImer1来应对第3种情况;
现有 时刻AA,时刻BB,时刻CC,AA+TimeK=BB,
AA<<<<<<<<<<<CC<<<<<<<<BB
 |______________________|
           |
         TimeK
有TTimer * m_Timer自AA时刻开始计时,如果此间没有任何击键动作,则到BB时刻时作为确认动作处理。
而假如CC时刻发生第2种事件,按下另外一个键,此时肯定要TTimer1->enabled=false;
假如接下来的动作又是按下“1”,我肯定要TTImer1->enabled=true,那么请问此时的TTimer1从什么时候开始计时?从AA还是CC?

#18


TTImer1->enabled=true,开始计时

#19


3000

#20


30000000000000000000000000000000000000

#21


佩服楼主不懂就问的专业精神

同意大家的意见

吃饱了没事做,我来给你证明
放两个Timer1,2
1  interval 3000-> label red
2           1000 ->first time false 1 ->second time ture 1 ->third tiem lable red
看看两个label 是不是同时红的就可以了吧

应该没有证明错吧,不过不太严谨,呵呵


#1


1000

#2


怎么能证明你的结论呢?举个简单的示例程序证明吧

#3


应该是3000吧

#4


3000
肯定

#5


3000 is OK

#6


已经变成false了,怎么会触发OnTimer事件呢?

时间可能是OO

#7


当然是3000了,每次开始由enable开始计时

#8


1000 or 3000?
What do you want to?

#9


当然是3000了!

#10


是3000,我刚用过TTimer

#11


3000 
当m_Timer->Enabled=true&&TTimer->OnTimer()触发

#12


3000,当Enabled为true时,才开始记时。

#13


同意你们说的
3000

#14


我不明白 已经设置为3000了

为何会在1000触发呢

TTimer 本来是 m_Timer的类名 怎么混为一谈了呢

再说这种事写个程序测试一下不就OK了 还需要百分么

看来我真是赶不上形势啦

学习 学习

@_@

#15


逻辑好模糊!!
用两个TIMER不是更用的控制吗?

#16


3000

#17


我只是想弄清楚,TTimer的特性,是不是有“记忆性”,在某些场合还是很重要的。比如你用手机输入英文(以Nokia3330/3310的英文输入为例,因为它最简单)的时候,按键之后在一段时间内(设为TimeK),如果没有下一步动作将视为确认当前字母。

诺基亚的输入法是这样的:某一键(例如假设为1)上面有三个或四个字母,按一下为A,两下为b,三下为c.此时的三个字母中的某一个进入“待选”状态,即闪烁。此时如果按下某键会有两种情况:
1、按下的是刚才的键,为“1”,则切换到下一个字母的“待选”状态
a---->b-------->c
|___<_______<___|

2、如果此时按下的是另外的键,则1建当前字母作为确认处理,并且把新键得相应字母进入“待选”状态。
3、如果没有击键事件发生,则当前字母作为确认输出

我详细说明我的目的以及问题:毫无疑问,我肯定需要一个TTImer1来应对第3种情况;
现有 时刻AA,时刻BB,时刻CC,AA+TimeK=BB,
AA<<<<<<<<<<<CC<<<<<<<<BB
 |______________________|
           |
         TimeK
有TTimer * m_Timer自AA时刻开始计时,如果此间没有任何击键动作,则到BB时刻时作为确认动作处理。
而假如CC时刻发生第2种事件,按下另外一个键,此时肯定要TTimer1->enabled=false;
假如接下来的动作又是按下“1”,我肯定要TTImer1->enabled=true,那么请问此时的TTimer1从什么时候开始计时?从AA还是CC?

#18


TTImer1->enabled=true,开始计时

#19


3000

#20


30000000000000000000000000000000000000

#21


佩服楼主不懂就问的专业精神

同意大家的意见

吃饱了没事做,我来给你证明
放两个Timer1,2
1  interval 3000-> label red
2           1000 ->first time false 1 ->second time ture 1 ->third tiem lable red
看看两个label 是不是同时红的就可以了吧

应该没有证明错吧,不过不太严谨,呵呵