【问题标题】:i need help in delphi-7我需要delphi-7的帮助
【发布时间】:2010-10-14 23:08:27
【问题描述】:

我想知道是否有人可以帮助我。我有一个学校项目要在 10 天内完成,老实说,我不知道我在做什么 =/ 对我的期望是我编写一个记忆游戏。我目前陷入困境的地方是我必须计算这个人玩游戏需要多长时间,然后在最后显示他们花了多长时间作为“分数”。我怎么计时?我应该使用什么组件以及如何对该组件进行编程以计时?它应该在单击按钮时开始,然后在游戏结束时结束。任何帮助将不胜感激!

【问题讨论】:

    标签: delphi delphi-7


    【解决方案1】:

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

    您可以按照现在的说明服用。

    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属性并启动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;  
      

      【讨论】:

      • 这个例子中的定时器是多余的,增加了开销。每次计时器滴答时都会引发一个事件,等等。
      【解决方案3】:

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

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

      • 您会在系统组件托盘上找到 TTimer(参见下面链接中的图片)

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

      http://i.stack.imgur.com/0iNsL.png(抱歉,由于我还没有必要的声誉,所以无法内嵌图片)

      从这里开始应该很容易完成你的申请

      祝你好运, G

      【讨论】:

        【解决方案4】:
        1. 在表单中创建一个 TDateTime 类型的变量(例如 StartTime)。
        2. 当用户开始播放时,将变量设置为等于 Now()。
        3. 当用户完成后,计算 Now()-StartTime 的值。结果是一个十进制数,表示开始时间和结束时间之间经过的一天的分数。
        4. 要将其转换为秒数,请将其乘以 (60 * 60 * 24)(即一天中的秒数)。从那里您可以根据需要显示数字。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-10
          • 1970-01-01
          相关资源
          最近更新 更多