Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   variable estatica no muere con el form !!!!!!!!!!! (https://www.clubdelphi.com/foros/showthread.php?t=46296)

david_uh 28-07-2007 00:03:17

variable estatica no muere con el form !!!!!!!!!!!
 
hola foro
estoy usando el siguiente procediemitno para simular una variable
estatica es decir qe cliks no pierda su valor entre llamada yllamada
al procediemitento,

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject) ;
const
{$J+}
   clicks : Integer = 1; //not a true constant
{$J-}
begin
  Form1.Caption := IntToStr(clicks) ;
  clicks := clicks + 1;
end;
pero pasa que cuando cierro el form y lo descluyo
asi:

en el evento close:
Código Delphi [-]
action := caFree
y en el evento Destroy
Código Delphi [-]
form := nil;

vuenlvo a crear este form y la variable clicks sigue con su anterior valor
alguien sabe por que ocurre esto y como resetear el valor de la variable
cuando se bvuelve a crear el form??

gracias por cualquier respuesta

egostar 28-07-2007 00:15:52

No te sirve inicializar la variable en el evento OnShow?

Código Delphi [-]
procedure TForm1.FormShow(Sender: TObject);
begin
  Clicks := 1;
end;

Salud OS.

Edito: Aunque veo que la tienes como una constante, pero puede ser que está dentro de un procedimiento, porque no la sacas como constante general.

david_uh 28-07-2007 00:18:37

pasa que la variable no es publica sino local al procedimiento

egostar 28-07-2007 00:21:25

Cita:

Empezado por david_uh
pasa que la variable no es publica sino local al procedimiento

Perdona, no entiendo lo que dices:confused:, porque no puede ser general, que no pública.

Salud OS.

david_uh 28-07-2007 00:23:52

puede ser pública o global como dices, pero el hecho es como proceder en caso de estar en una siruacion asi mas lo que me intriga saber es porque la varible conserva su valor aun cuando destruyo el form

roman 28-07-2007 00:51:14

En la unidad donde defines tu formulario pon algo así:

Código Delphi [-]
unit Unit1;

interface

type
  TForm1 = class(TForm)
     ...
  end;

implementation

var
  Clicks: Integer;

initialization
  Clicks := 1;

end.

La variable Clicks se inicializará al principio de la aplicación y preservará su valor aun destruyendo el formulario, y segurá siendo invisible para otras unidades.

// Saludos


La franja horaria es GMT +2. Ahora son las 19:13:28.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi