[Lazarus-es] Duda sobre declaración y el alance de variables en los formularios

Maxi maximiliano.duarte en gmail.com
Mar Sep 3 22:34:38 CEST 2013


El día 3 de septiembre de 2013 16:47, Ismael L. Donis Garcia
<ismael en citricos.co.cu> escribió:
> Tengo una gran duda sobre la declaración de variables en formulario.
>
> Si declaro una variable de la siguiente forma:
>
> implementation
>
> var
>  ddebe, dhaber: double;
>
> y llamo el formulario de la siguiente forma:
>
>  f:=form1.Create(Self);
>  f.ShowModal;
>  f.Free;
>
> Y dentro del formulario le doy valores a las variables ddebe y dhaber y
> cierro el formulario con self.close;
>
> Cuando entro de nuevo al formulario se me conservan los valores de las
> variables ddebe y dhaber.
>
> Ahora mi duda:
>
> Si yo cierro el formulario porque se me mantiene el valor de las variables
> que yo había calculado en la entrada anterior?
> Este valor no debería ser =0 al volver a entrar de nuevo al formulario?
> Cual es la causa de este comportamiento?
>
> Desde ya Gracias
> ========
> | ISMAEL |
> ========
> Only for the small landowners and Cubans companies
> Website: www.sisconge.byethost15.com
>              www.sisconge.hol.es
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es


esta mal declarado y usado.

Deberias hacerlo asi:

TformX
.
.
.
.
Private
 ddebe, dhaber: double;
end;

Si lo declaras en la implementacion es como global al archivo.

Self es el objeto actual en el momento de llamarlo, y le estas
diciendo que Form1 se cree como pariente del objeto que trae Self. El
destructor del objeto llamador se encargaria de destruir a Form1.
yo lo uso de una forma mas segura

 with Tform1.Create(nil)
 try
   Showmodal;
 finally
  Free;
end;

o
 with Tform1.Create(nil)
 try
   Showmodal; // y en el evento oncanclose colocas:  Action := caFree;
 except
  Free;
end;


-- 
El que pregunta aprende, y el que contesta aprende a responder.

No a la obsolecencia programada:
http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml

Linux User #495070
http://domonetic.com/blog




More information about the Lazarus-es mailing list