[firebase-br] Timer em UDF

Alexandre Trindade alexandre em habitus.com.br
Ter Abr 12 14:32:41 -03 2005


Ola amigos...

Estava tentando colocar um TIMER dentro de uma UDF para realizar algumas operacoes independente de uma chamada às funções da UDF. Qual não foi a minha surpresa ao perceber que o timer simplesmente não dispara.... 

O código ficou mais ou menos assim:

type
 TMeuTimer = class(TComponent)
  private
    Timer: TTimer;
    procedure OnTimer(Sender: TObject);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  end;  

var
  MeuTimer : TMeuTimer;

constructor TMeuTimer.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Timer          := TTimer.Create(Self);
  Timer.OnTimer  := OnTimer;
  Timer.Interval := 3000;
  Timer.Enabled  := True; 
end;

destructor TMeuTimer.Destroy;
begin
  Timer.Free;
  Timer := nil;
  inherited Destroy;
end;

procedure TMeuTimer.OnTimer(Sender: TObject);
begin
  DeleteFile('C:\Temp.txt');
end;

initialization
  MeuTimer := TMeuTimer.Create(nil);

finalization
  MeuTimer.Free;
  MeuTimer := nil;


O interessante, é que tenho certeza de que a classe está sendo criada, mas o timer não dispara, como se o FIREBIRD não permitisse THREADs em UDFs.... 


Alguém já tentou fazer algo do tipo?

[]'s

Alexandre Trindade
Analista de Sistemas


Mais detalhes sobre a lista de discussão lista