【发布时间】:2010-10-14 23:08:27
【问题描述】:
我想知道是否有人可以帮助我。我有一个学校项目要在 10 天内完成,老实说,我不知道我在做什么 =/ 对我的期望是我编写一个记忆游戏。我目前陷入困境的地方是我必须计算这个人玩游戏需要多长时间,然后在最后显示他们花了多长时间作为“分数”。我怎么计时?我应该使用什么组件以及如何对该组件进行编程以计时?它应该在单击按钮时开始,然后在游戏结束时结束。任何帮助将不胜感激!
【问题讨论】:
我想知道是否有人可以帮助我。我有一个学校项目要在 10 天内完成,老实说,我不知道我在做什么 =/ 对我的期望是我编写一个记忆游戏。我目前陷入困境的地方是我必须计算这个人玩游戏需要多长时间,然后在最后显示他们花了多长时间作为“分数”。我怎么计时?我应该使用什么组件以及如何对该组件进行编程以计时?它应该在单击按钮时开始,然后在游戏结束时结束。任何帮助将不胜感激!
【问题讨论】:
你为什么不在他开始游戏时将当前时间保存在一个变量中,并在他结束时再次保存时间?
您可以按照现在的说明服用。
var time: TDateTime;
begin
time := now;
ShowMessage(DateTimeToStr(time));
end;
您会在系统中看到当前时间。
【讨论】:
你需要
1.- 在您的表单中,
Enabled 属性设置为False。startTime记录用户开始游戏的时间。应该是这样的结果...
type
TForm1 = class(TForm)
...
Label1: TLabel;
Timer1: TTimer;
...
private
startTime:TDateTime;
....
2.- 在开始按钮的点击事件中,初始化startTime属性并启动Timer的代码。
procedure TForm1.Button1Click(Sender: TObject);
begin
startTime:=Now;
Timer1.Enabled:=True;
....
end;
3.- 在Timer的Timer事件中,显示计时的一些代码
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption:=TimeToStr(Now-startTime);
....
end;
4.- 在完成按钮的点击事件,或者当程序认为游戏结束时,一些代码来停止计时器。
procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled:=False;
Label1.Caption:=TimeToStr(now-startTime);
....
end;
【讨论】:
PA 的答案似乎正是您所需要的。因为如果我理解得很好并且这是您第一次使用 delphi,我只会补充一点:
Now 是 SysUtils 中定义的返回当前日期和时间的函数
您会在系统组件托盘上找到 TTimer(参见下面链接中的图片)
通过在对象检查器中选择事件选项卡,然后双击输入框,将自动生成您需要编写代码的所有过程(参见下面链接中的图片)
http://i.stack.imgur.com/0iNsL.png(抱歉,由于我还没有必要的声誉,所以无法内嵌图片)
从这里开始应该很容易完成你的申请
祝你好运, G
【讨论】:
【讨论】: