The problem of your code is that the variable <answer> is not initialized. Regards Evgueny
вт, 27 окт. 2020 г. в 15:28, Santiago A. via lazarus < lazarus@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@lists.lazarus-ide.org > https://lists.lazarus-ide.org/listinfo/lazarus >
-- _______________________________________________ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus