Miguel,
> Un TFORM con nBorderStyle = bsDIALOG
>
>
> with object Tform():new()
>
> if :showmodal == mrOK
> msgBox( :dato )
> endif
>
> end object
>
> Si salgo del TForm con ::end(), sigo teniendo acceso a los datas del
> Tform.
No debes cerrarlo con ::end(), sino con ::Close()
> ¿Cuando se destruye totalmente el formulario? o dicho de otra manera hasta
> cuando se tiene acceso a sus datas.
Hay que distinguir entre 2 cosas:
- Los recursos de windows (handles de ventana y controles, etc.)
- Los objetos a nievel de Xailer
Los primeros se destruyen inmediatamente (excepto si lHideOnClose está a
..T.), pero los segundos permanecen hasta que no quede ninguna referencia
viva a esos objetos; en el caso del formulario, que no quede ninguna
variable que apunte al objeto formulario.
Hasta que eso ocurre, todos los objetos son accesibles, incluidas todas sus
propiedades. No obstante, algunas propiedades de algunos controles son
resueltas llamando al API con el handle del control, y por lo tanto no se
pueden resolver una vez que el control ha sido destruido; pero la mayoría no
son así, y se pueden leer sin ningún problema.
> En el siguiente show() emplea los mismos recursos del sistema o no.
> Porque en sucesivas llamadas iríamos necesitando mas y mas recursos del
> SO.
No, se usarían nuevos recursos del sistema. Pero ten en cuenta que los
anteriores ya fueron liberados. En el caso de los objetos, depende de lo que
estés haciendo: si estás usando una referencia viva al formulario anterior,
pues estarías reutilizando el objeto. Pero si no, estarías creando un objeto
nuevo.
> El Recolector de basura cuando actúa. Y que es lo que destruye.
Actúa cuando ya no queda ninguna referencia viva al objeto, y destruye el
propio objeto, es decir, todas sus estructuras de datos y memoria consumida.
En el caso de que consiguieras eliminar cualquier referencia a un objeto
para que el recolector de basura actuase, pero sin haber destruido
previamente el control o ventana, estarías provocando un problema, ya que
dicha ventana seguiría funcionando pero el objeto que la sustenta habría
dejado de existir. Esa situación se saldaría, casi con total seguridad, con
un bonito GPF.
--
Un saludo,
José F. Giménez
http://www.xailer.com