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

Martin Gomez mmgomez en gmail.com
Mar Sep 3 22:40:28 CEST 2013


Claro, si las declaras fuera de la clase del formulario las variables
quedan como "globales" (solo para los que tengan la unit del formulario en
su uses).
Si necesitas acceder a estos valores desde fuera, el consejo es que
agregues propiedades en el formulario, o las pongas en la sección *public*,
sino sigue el consejo de Maxi y mantenlas privadas.
Otra alternativa sería pasarlas a 0 en el OnCreate.


2013/9/3 Maxi <maximiliano.duarte en gmail.com>

> 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
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>



-- 
Try not to become a man of success but rather to become a man of value. *Albert
Einstein*
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20130903/605e9908/attachment-0002.html>


More information about the Lazarus-es mailing list