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.