Fórum Manter um valor numa procedure.. #299508
14/10/2005
0
Muito tempo que eu nao usava Delphi, e eu lembro que havia um jeito de manter estático o valor de uma variavel..
por exemplo.. sei que havia um jeito de toda vez q eu chamar essa procedure ele somar (1) ao valor.. ou seja o valor nao ser perdido mesmo sem ser uma variavel global..
alguem sabe?
procedure Tlincenet.Timer1Timer(Sender: TObject); var i : integer; begin inc(i); end;
por exemplo.. sei que havia um jeito de toda vez q eu chamar essa procedure ele somar (1) ao valor.. ou seja o valor nao ser perdido mesmo sem ser uma variavel global..
alguem sabe?
Amon-ra
Curtir tópico
+ 0
Responder
Posts
14/10/2005
Massuda
Use uma constante tipada......mas para isso funcionar, em [b:979e5057d6]Project|Options|Compiler[/b:979e5057d6], a opção [b:979e5057d6]Assignable typed constants[/b:979e5057d6] precisa estar marcada.
procedure Tlincenet.Timer1Timer(Sender: TObject); const i : integer = 0; begin inc(i); end;
Responder
Gostei + 0
14/10/2005
Michael
Complementando a dica do [b:4d04fee30c]Massuda[/b:4d04fee30c], vc pode usar as diretivas [b:4d04fee30c]{$J+}[/b:4d04fee30c] e [b:4d04fee30c]{$J-}[/b:4d04fee30c] apenas na declaração da constante, evitando a ativação do recurso em toda a aplicação. A Borland recomenda que não se altere o valor de uma constante, por isso passou a impedir tal procedimento por padrão, se não me falha a memória a partir do Delphi 6.
Seu código ficaria assim:
[]´s
Seu código ficaria assim:
procedure Tlincenet.Timer1Timer(Sender: TObject);
{$J+}
const
i : integer = 0;
{$J-}
begin
inc(i);
end;
[]´s
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)