Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Už funguje :-) S tým TTimer, jsem to nějak nepochopil? nový
Petr Hromada 26.08.2018 10:46
Petr Hromada
Chtěl jsi po 5 minutách něco spustit, pokud se to stane víc jak 100x Timer (časovač) Nastavíš interv… nový
Jan Fiala 26.08.2018 11:31
Jan Fiala
Si asi špatně rozumime. Mam buton a klikan furt na něj. Ja potřebují, aby se to v procedure TForm1.B… nový
Petr Hromada 26.08.2018 13:09
Petr Hromada
Lazarus nemám, neviem aké funkcie pre porovnanie časov obsahuje... V Delphi by som to urobil nejak t… poslední
pme 26.08.2018 14:05
pme

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.

Lazarus nemám, neviem aké funkcie pre porovnanie časov obsahuje...
V Delphi by som to urobil nejak takto:

unit Unit3;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm3 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    Cas: TDateTime;  
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

uses DateUtils;

{$R *.dfm}

procedure TForm3.FormCreate(Sender: TObject);
begin
  Cas := 0;
end;

procedure TForm3.Button1Click(Sender: TObject);
var T1: TDateTime;
begin
  T1 := now;
  if MinutesBetween(t1, cas) >= 5 then
   begin
     Cas := now;
     // Tvoj kod....
   end;
end;

end.

Zpět do poradny Odpovědět na původní otázku Nahoru