No me agrada mucho, pero te escribí esto:
Código Delphi
[-]
unit TimerRegularProcedure;
interface
uses
ExtCtrls;
type
TRegularProcedure = procedure;
THackTimer = class
private
FTimer: TTimer;
procedure OnTimer(Sender: TObject);
public
FRegularProcedure: TRegularProcedure;
constructor Create;
destructor Destroy; override;
end;
var
HackTimer: THackTimer;
implementation
uses
Dialogs;
constructor THackTimer.Create;
begin
FRegularProcedure := nil;
FTimer := TTimer.Create(nil);
FTimer.OnTimer := OnTimer;
FTimer.Interval := 5000;
FTimer.Enabled := True;
end;
destructor THackTimer.Destroy;
begin
FTimer.Free;
end;
procedure THackTimer.OnTimer(Sender: TObject);
begin
if Assigned(FRegularProcedure) then
FRegularProcedure;
end;
procedure TimerEventos;
begin
ShowMessage('Hola Mundo!');
end;
initialization
HackTimer := THackTimer.Create;
HackTimer.FRegularProcedure := TimerEventos;
finalization
HackTimer.Free;
end.