
Lazarus - Time
Zdravím
Jsem už v tom dlouho nedělal tak bych rad poprosil o pomoc.
Potřebují podminku IF, ktera i když bude splněna třeba 100 x za minutu, aby se vykonala jen jednou za 5 minut.
Jak na to?
var
a,b: integer;
MyTime,MyTime1: TDateTime;
begin
if (a = b) and (MyTime1 < MyTime) then
begin
MyTime1 := MyTime + StrToTime('00:05:00');
beep;
end;
end;
Myslim že existuje přimo nějaka funkce na porovnavaní času, ale nemohu najit.
Podminku mas dobre, Tdatetime je cislo. Pred desetinnou carkou je datum, za nim cas. Porovnavat to muzes a bude to fungovat.
Na podobne veci je lepsi TTimer, kde si nastavis interval 5 minut a v udalosti zkontrolujes podminku na pocet. Kdyz bude vetsi jak 100, udelas, co potrebujes
Už funguje
S tým TTimer, jsem to nějak nepochopil?
Chtěl jsi po 5 minutách něco spustit, pokud se to stane víc jak 100x
Timer (časovač)
Nastavíš interval na 1000*60*5 (5 minut v milisekundách)
Napíšeš událost, kde otestuješ, zda se to stalo 100x a pokud ano, něco uděláš.
Timer se bude spouštět každých 5 minut a nebude blokovat hlavní vlákno aplikace.
Si asi špatně rozumime.
Mam buton a klikan furt na něj.
Ja potřebují, aby se to v procedure TForm1.Button1Click provedlo jen jednou za 5 minut.
I když třeba klikam na button 1000 X za minutu.
Lazarus nemám, neviem aké funkcie pre porovnanie časov obsahuje...
V Delphi by som to urobil nejak takto: