注册 登录
编程论坛 Delphi论坛

怎么让时钟循环着单击按钮?

lfkm 发布于 2008-05-04 10:50, 2113 次点击
我有一按钮、一个时钟、一个IMAGE图像框用来放图象。
想要的结果是。时钟间隔1秒后就自动的单击按钮一次 ,而按钮被单击后就换一张新的图像(应该是刷新上一张后)。
我想不出来被单击时的按钮的属性该怎么写
这个时钟循环怎么写呀?请高手指点一二。
8 回复
#2
hackergirl2008-05-04 15:50
我给你个思路.代码就不写了.
不用按钮.就两个控件行了.
一个是Timer
一个是Image
把Timer的Interval属性设置你要变换图像的相隔时间,单位是毫秒.  你要一秒就填 1000 ,这也是默认值.
Enabled的属性设为True                        
在它的OnTimer事件里写变换图像的代码.就行了.

回答你一个问题.
按钮单再击事件是: Button1.Click;
#3
lfkm2008-05-04 15:58
我用button1.click:=timer.interval时就报前面个事件出错.所以才不明白到底怎么写它的格式.
我用那方法是因为按钮还有别的作用.
#4
hackergirl2008-05-04 16:09
你的事件怎么能赋值呢?
按我刚才说的.
不过先把Timer的属性设为假.
#5
hackergirl2008-05-04 16:12
还没写完.就按到发送了.继续.
在按钮的单击事件里写.
Timer1.Enabled:=Ture;
它就开始循环了.
Timer1.Enabled:=False;
就停止.
如果想让它每隔一秒就按一次.
就在OnTimer的事件里写
Button1.Click;
就行了.
#6
volte2008-05-04 17:06
也可以通过消息机制,不过你这样刷新太快,不知道会不会让程序跑的越来越慢,
建议采用线程技术考虑这样的加载图片的问题。
#7
provoke2008-05-04 19:16
建议增加一个复杂框,标题(Caption)叫“自动播放”或其他类似,在属性面板中将其Checked属性设置为false,即取消“选中”,另外在其Click事件中写上这么一行:
Timer1.Enabled:=CheckBox1.Checked;

    还有,在属性面板中将Timer1的Enabled的属性设置为false,这样,打开相应窗体时不会自动播放,选中了这个复选框时,启用Timer1,自动播放图片;取消选中时,禁用Timer1,结束自动播放。

    Timer控件比较占用资源,另外连续加载图片也会比较占内存,CPU使用率90%以上是正常事。

    1秒时间太短了,可能图片还没加载完就又切换下一张了。我自己做的3秒都还太短,因为加载一些2M多的数码相机原图比较慢……

    还可以考虑自动播放时间间隔可供用户输入,以秒为单位,但要限制,只能输入数字,或者用选择的形式。
#8
lfkm2008-05-04 22:52
谢谢hackergirl 的解惑..问题是解决了.
可是用了才发现后面二位说的没错,这思路对内存消耗太快了.
不过还是学会了在时钟里的一点用法.
三Q各位了.
#9
hackergirl2008-05-05 11:47
继续加油,我也是刚学.
所以很多东西我都不知道.
我只把我懂的说出来.
1