[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