Hola,
No sé hasta qué punto he entendido las indicaciones del maestro Seoane o tengo que darles un buen repaso, pero, esto es lo que hay...
Código Delphi
[-]
program ConsoleTimer;
{$APPTYPE CONSOLE}
uses
Windows,
Messages,
SysUtils,
ExtCtrls;
type
TDummy = class(TObject)
procedure TimerInterval(Sender: TObject);
end;
var
Dummy: TDummy;
Timer: TTimer;
Terminar: Boolean;
procedure TDummy.TimerInterval(Sender: TObject);
begin
WriteLn(TimeToStr(Time)+' - Trigger TimeInterval');
end;
procedure ProcessMessages;
var
Msg: TMsg;
begin
while PeekMessage(Msg,0,0,0,PM_REMOVE) do
begin
if Msg.Message = WM_QUIT then
begin
Terminar:= TRUE;
break;
end else begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end;
end;
begin
Terminar := false;
Dummy := TDummy.Create();
Timer := TTimer.Create(nil);
Timer.OnTimer := Dummy.TimerInterval;
Timer.Interval := 2000;
try
while not Terminar do
begin
ProcessMessages();
if not Terminar then
Sleep(10);
end;
finally
Timer.Free();
Dummy.Free();
end;
end.
Revisa
este hilo y
este otro.