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..

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

Amon-ra

Responder

Posts

14/10/2005

Massuda

Use uma constante tipada...
procedure Tlincenet.Timer1Timer(Sender: TObject); 
const
  i : integer = 0; 
begin 
  inc(i); 
end;
...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.


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:

procedure Tlincenet.Timer1Timer(Sender: TObject);
{$J+}
const
  i : integer = 0;
{$J-}
begin
  inc(i);
end;


[]´s


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar