Fórum Evento em um timer #196444
21/11/2003
0
ve se voceis podem me ajudar eu tenho certeza q tem como so não descobri como faz
tenho um aquivo de funcoes .pas, criei um variavel ttimer dentro de uma função, passei todas a propriedades normais para esta variavel (interval,etc..) no evento ontimer ele da erro. fiz como esta abaixo:
o q tem de errado?
procedure confbanco(banco:tibquery;transa:TIBTransaction);
var
tempo:ttimer;
i:integer;
begin
banco.Close;
tempo:=ttimer.Create(nil);
transa.Active:=true;
tempo.Enabled:=false;
tempo.Interval:=1000;
tempo.OnTimer :=evento;
tempo.Enabled:=true;
end;
procedure Evento(Sender: TObject);
begin
if (bancoy.Active=true) and (bancoy.State in [dsBrowse]) then
bancoy.Refresh;
end;
Valeu pela ajuda!! q Deus abençoe a Todos!!1
Jbspio
Curtir tópico
+ 0Posts
21/11/2003
Beppe
@OnTimer := @Evento;
Gostei + 0
21/11/2003
Jbspio
Valeu mas nao deu certo!! continua o mesmo erro!
Gostei + 0
21/11/2003
Beppe
É que é @Tempo.OnTimer := @Evento;
Gostei + 0
24/11/2003
Beppe
Eu testei o truque que passei usando um evento do form, e não de um componente. Parece que o Delphi só permite isto na classe em que se está!
Um evento só pode receber um método, que é uma rotina dentro de uma classe, então você coloca sua procedure dentro de uma classe.
Você também pode escrever um descendente do timer que faz isso:
{ TMyTimer }
type
TMyTimer = class(TTimer)
protected
procedure Timer; override;
end;
procedure TMyTimer.Timer;
begin
if bancoy.Active and (bancoy.State in [dsBrowse]) then
bancoy.Refresh;
end;
O método Timer é que faz a ´mágica´. O certo seria chamar inherited;, mas o método herdado só chama o evento OnTimer, se tiver. Note que agora não estamos usando um evento, usamos o próprio método que despacha o evento.
Então crie uma instãncia de TMyTimer.
T+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)