Проверяющий поток

Тема в разделе "Delphi - Система", создана пользователем Artexoid, 21 фев 2005.

Статус темы:
Закрыта.
  1. Artexoid

    Artexoid Гость

    Как написать цикл что-то вроде TTimer который должен что-то проверять (например сколько время) через определенный промежуток времени (например раз в минуту). Напишите код пожалуйста и как это называется!! Очень, очень интересно.
     
  2. zubr

    zubr Гость

    Код (Text):
    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls;

    type
    TTimer=class(TThread)
    protected
     procedure Execute; override;
     procedure DoExecute;
    end;

    TForm1 = class(TForm)
     Button1: TButton;
     Button2: TButton;
     procedure FormCreate(Sender: TObject);
     procedure Button1Click(Sender: TObject);
     procedure Button2Click(Sender: TObject);
    private
     { Private declarations }
     FTime:TTime;
    public
     { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.DFM}

    var
    TimerThread:TTimer;

    procedure TTimer.Execute;
    begin
    While (not Terminated) do
    begin
    Synchronize(DoExecute);
    Sleep(60000);//задержка минута
    end;
    end;

    procedure TTimer.DoExecute;
    begin
    Form1.FTime:=Now;//текущее время
    //какой то код вывода на экран
    end;


    procedure TForm1.Button1Click(Sender: TObject);//запуск потока
    begin
    TimerThread:=TTimer.Create(False);
    end;

    procedure TForm1.Button2Click(Sender: TObject);//закрытие потока
    begin
    TimerThread.FreeOnTerminate:=True;
    TimerThread.Terminate;
    TimerThread:=nil;
    end;

    end.
     
  3. Barmutik

    Barmutik Гость

    Только пару мелочей:

    1. Подсчёт времени будет не абсолютно точен.
    2. Дяя завершения потока в худшем случае придётся ждать целую минуту.
     
  4. zubr

    zubr Гость

    Ну, я человеку только схему показал.
    Скорее интервал обращения к функции Now
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей