[Lazarus] TTimer simple issue

Евгений Кадисов kadissov.e at gmail.com
Tue Oct 27 13:46:35 CET 2020


The problem of your code is  that the variable <answer> is not initialized.
Regards
Evgueny

вт, 27 окт. 2020 г. в 15:28, Santiago A. via lazarus <
lazarus at lists.lazarus-ide.org>:

> El 18/10/2020 a las 19:18, Lars via lazarus escribió:
>
> When building a simple TTimer demo I cannot seem to get it working
>
> Any idea what the problem could be if you paste this code into your form
> with a memo?
>
> var
>   TimeSpent: integer;
>
> procedure TForm2.Button1Click(Sender: TObject);
> var
>   i, answer: integer;
> begin
>   Timer1.enabled := false;
>   TimeSpent := 0;
>   Timer1.Enabled := true;
>   Timer1.interval := 1;
>   for i := 0 to 999999999 do
>   begin
>     answer := i * answer;
>   end;
>
>   memo1.lines.add('time spent: ' + inttostr(timespent));
>
> end;
>
> procedure TForm2.Timer1Timer(Sender: TObject);
> begin
>   inc(TimeSpent);
> end;
>
> It says
> time spent: 0
> Whereas the time should be a lot.
>
> Regards,
> Lars
>
>
> I don't know what are you trying to do, but if you are trying to find out
> how long it takes certain process, you should try other approach. Timer is
> low precision and it is only fired by events, so you must process event's
> queue.
>
> A first and bad approach:
>
> for i := 0 to 999999999 do
> begin
>    answer := i * answer;
>    application.processmessages; //<-- process event queue
> end;
>
> But this is very not a very efficient way. The best is to get the start
> time, get the end time and subtract.
>
> var
>   StartTime,EndTime:TDataTime;
>   i, answer: integer;
> begin
>  StartTime:=now;
>  for i := 0 to 999999999 do
>  begin
>     answer := i * answer;
>  end;
>  EndTime:=now;
>  memo1.lines.add('time spent: ' + TimeToStr(EndTime-StarTime) );
> end;
>
> But TDateTime is not accurate at all if you are measuring short periods
> (milliseconds).
>
> EpikTimer is a component with much better precision.
>
> https://wiki.lazarus.freepascal.org/EpikTimer
>
>
> --
> Saludos
>
> Santiago A.
>
> --
> _______________________________________________
> lazarus mailing list
> lazarus at lists.lazarus-ide.org
> https://lists.lazarus-ide.org/listinfo/lazarus
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20201027/5d7af412/attachment.html>


More information about the lazarus mailing list