Показать сообщение отдельно
  #3  
Старый 03.02.2016, 11:39
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

пример выполняет действие через 5 сек. после бездействия и повторяет выполнять действие каждые 5 сек. если бездействие продолжается:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    ApplicationEvents1: TApplicationEvents; (* OnIdle *)
    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  TickCount: DWORD = 0;

implementation

{$R *.dfm}

procedure TForm1.ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
var
  LastInputInfo: TLastInputInfo;
begin
  LastInputInfo.cbSize:=SizeOf(TLastInputInfo);
  GetLastInputInfo(LastInputInfo);
  if LastInputInfo.dwTime<>TickCount then TickCount:=Max(TickCount, LastInputInfo.dwTime);

  if GetTickCount-TickCount>5000 then
  begin
    TickCount:=GetTickCount;
    (* to do *)
    Memo1.Lines.Add('*');
  end;
end;

end.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием