如何在 Delphi 7 中测量经过的时间?

问题描述 投票:0回答:4

我想知道是否有人可以帮助我。我对 Delphi 编程非常陌生,我有一个 10 天内到期的学校项目,说实话,我不知道我在做什么。

对我的期望是,我编写了一个记忆游戏,我目前陷入其中,我必须计算该人玩游戏需要多长时间,然后在最后显示他们花了多长时间作为“分数” .

我如何计时?我应该使用什么组件以及如何对该组件进行编程以计时?它应该在单击按钮时开始,然后在游戏结束时结束。

任何帮助将不胜感激!

delphi timer delphi-7 time-measurement
4个回答
2
投票

为什么不在他开始游戏时将当前时间保存在变量中,并在他结束时再次保存时间?

您可以通过Now指示领取。

var time: TDateTime;
begin
 time := now;
 ShowMessage(DateTimeToStr(time));
end;

您将在系统中看到当前时间。


2
投票

你会需要

1.- 在你的表格中,

  • 添加一个计时器,并将其
    Enabled
    属性设置为
    False
  • 添加标签来显示时间
  • 添加私有属性
    startTime
    ,记录用户开始游戏的时间。

应该会产生这样的结果...

type
 TForm1 = class(TForm)
  ...
  Label1: TLabel;
  Timer1: TTimer;
  ...
 private
  startTime:TDateTime;
  ....

2.- 在开始按钮的单击事件中,初始化 startTime 属性并启动计时器的代码。

 procedure TForm1.Button1Click(Sender: TObject);
  begin
   startTime:=Now;
   Timer1.Enabled:=True;
   ....
  end;

3.- 在定时器的定时器事件中,一些显示时间计数的代码

 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;  

0
投票

PA的答案似乎正是你所需要的。因为如果我理解得很好并且这是你第一次使用delphi,我只想补充一点:

  • Now
    是SysUtils中定义的函数,返回当前日期和时间

  • 您将在系统组件面板上找到 TTimer(请参阅下面链接中的图片)

  • 通过选择对象检查器中的“事件”选项卡,然后双击输入框,将自动生成您需要编写代码的所有过程(参见下面链接中的图片)

https://i.stack.imgur.com/0iNsL.png(抱歉,无法内嵌图像,因为我还没有必要的声誉)

从这里开始你的申请将会很容易完成

祝你好运, G


0
投票
  1. 在表单中创建 TDateTime 类型的变量(例如 StartTime)。
  2. 当用户开始玩时,将变量设置为等于 Now()。
  3. 用户完成后,计算Now()-StartTime的值。结果是一个十进制数,表示开始时间和结束时间之间经过的一天的分数。
  4. 要将其转换为秒数,请将其乘以 (60 * 60 * 24)(即一天的秒数)。从那里您可以根据需要显示号码。
© www.soinside.com 2019 - 2024. All rights reserved.