se não colocar o ShowMessage lá no While não executa a rotina, não 
estou sabendo o que colocar lá para funcionar pois na verdade eu 
quero que execute a rotina; se eu tirar o While o programa cai fora.
Pensei em colocar sleep() mas não funcionou, estou perdido aqui.

grato

Stainle

Estou postando o código :
uses
Windows, SysUtils, Classes, ExtCtrls, Dialogs;

var
  Alarme : TTimer;
  a : integer;

type
  TRotina = class
public
Procedure EventTimer(Sender:TObject);
end;

procedure TRotina.EventTimer(Sender: TObject);
begin
    Alarme.Enabled := False;
    ShowMessage('Estou na Rotina');
    Alarme.Enabled := True;
end;

var
  AClass : TRotina;

begin
    Alarme := TTimer.Create(nil);
    AClass := TRotina.Create;

    Alarme.Interval := 10000;
    Alarme.OnTimer := AClass.EventTimer;
    Alarme.Enabled := True;

    a := 1;
    While a = 1 do
        begin
            ShowMessage(IntToStr(a));
        end;

end.

Responder a