我想知道程序执行完所花的时间,可是不知怎么写代码,请都各位高手一下,打扰了.小弟初学delphi不久,希望能给个意见.谢谢!!

解决方案 »

  1.   

    var
      a,b : Cardinal;
    begin
      a := gettickcount;
      {你的程序}
      b := gettickcount - a;  //执行时间
    end;
      

  2.   

    哦!gettickcount是函数还是变量呢?
      

  3.   

    为什么要用timer控件呢?procedure TForm1.Button1Click(Sender: TObject);
    var t1,t2:tdatetime;  i:Extended;
    begin
        t1:=now;
        memo1.Lines.Add('开始时间:'+FormatDateTime('yyyy-mm-dd hh:mm:ss',t1));
        //你的代码;
        sleep(2000);
        t2:=now;
        memo1.Lines.Add('结束时间:'+FormatDateTime('yyyy-mm-dd hh:mm:ss',t2));
        i:=t2-t1;
        memo1.lines.add('程序共执行了'+inttostr(round((i)*60*60*24))+'秒');
    end;
      

  4.   

    上边 i是我调试用的,去掉就可以
    procedure TForm1.Button1Click(Sender: TObject);
    var t1,t2:tdatetime;
    begin
        t1:=now;
        memo1.Lines.Add('开始时间:'+FormatDateTime('yyyy-mm-dd hh:mm:ss',t1));
        //你的代码;
        sleep(2000);
        t2:=now;
        memo1.Lines.Add('结束时间:'+FormatDateTime('yyyy-mm-dd hh:mm:ss',t2));
        memo1.lines.add('程序共执行了'+inttostr(round((t2-t1)*60*60*24))+'秒');
    end;
      

  5.   

    gettickcount获得一个系统运行的时间值,单位是毫秒,比Timer要精确些
      

  6.   

    支持 paranoia190和 YAMABACK(不要把我当Michael,我只是会投篮) 的看法
      

  7.   

    formCreate的时候记录一个now的值
    什么时候想知道运行多长时间了,就用当时的now和记录作比较就可以了
    //////////////////////
    优点是不用Timer,可以省下一笔不小的开销
    受一个人的启发,记得原来见过这么做的...推荐一下
      

  8.   

    应该使用操作系统的API:GetTickCount来计算时间差值。
      

  9.   

    GetTickCount返回系统启动到现在的毫秒值,
    在开始时计算一下,
    在操作结束时再计算一下,
    作个差值就可以了。
      

  10.   

    欢迎大家加入DELPHI程序员群1805366,一起进步!