Private Sub Timer1_Timer()
If row - Lblrow > 0 And col - Lblcol > 0 Then Picture2.Top = Picture2.Top - 161.69: Picture2.Left = Picture2.Left + 248.68: Picture1.Left = Picture1.Left + 248.68
没有实时读取数据的时候,这个timer1事件运行正常。实时读取数据的时候,timer1事件没有按照里面的代码运行。
我用的就是两个timer控件。
那有什么解决的办法吗?因为我的程序必须要每隔一定的时间读取数据库的记录,同时要根据读取的数据,会有一个控件的移动过程。
追答读取数据和移动控件不能写在一个timer里吗?
追问当控件运动到达位置后,加载货架图片和读取数据库数据,控件又开始移动了。我想要的是控件不移动,等待新的数据记录再移动。
timer1.interval=0是把timer1停止了....
可以用个模块变量做计数器,错开数据加载和图片移动
dim iA as long
private sub timer1_timer()
if ia mod 10=0 then
加载数据代码
else
移动图片代码
end if
ia=ia+1
if ia>1000000 then ia=1 '让ia循环防止溢出。
end sub
这个看不懂喔,因为我想的就是到达位置后,计时器停止,接着等待数据库是否有新记录,如果有就接着运动,没有就继续等待。能解释的更详细一点么,我的timer1.interval=1000,每隔1000ms picture2.left=picture2.left+(-)a和picture2.top=picture2.top+(-)b。
追答恩,我的建议:
1 你把图片移动的东西放到另外一个timer2里
2 timer1用来检测和加载新数据。如果发现有新数据就先停掉自己,然后启动timer2。 timer1_timer代码说明如下:
检查有无数据
如果有数据:
加载数据
timer1.enabled=false '停掉自己...
timer2.enabled=true '启动图片移动时钟
3 timer2需要有机制保证循环执行一段时间后停止。用模块变量做计数器来和处理。
timer2_timer的代码说明如下(dim iA as integer 放在窗口代码顶部):
移动的图片的代码
....
ia=ia+1
if iA>100 then
ia=0
timer2.enabled=false 'timer2执行100次移动后把timer2停止
timer1.enabled=true '启动timer1检查有无新数据
end if