In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Duda sobre lHideOnClose

Foro de Xailer profesional en español
User avatar
bingen
Posts: 440
Joined: Mon Jul 07, 2014 8:17 pm
Location: Bilbao
Contact:

Duda sobre lHideOnClose

Postby bingen » Mon Sep 14, 2020 3:06 pm

Buenas xTeam, estoy aplicando para formularios muy complejos (muchos folders con muchos objetos) la técnica de lHideOnClose a .T. para que la primera vez lo pinte y muestre pero a partir de entonces lo oculta en lugar de cerrarlo y las siguientes veces sale al instante, muy bueno pero....

Al vorver a mostrarlo solo pasa por el show y no por el initialize y algunas cosas funcionan "raro", entonces podría mover todo al Show pero recuerdo algo que comentó Ignacio sobre Resetear los campos ?¿?¿? hay alguna manera sencilla de hacerlo? algun método?

Gracias.
BiSoft Desarrollo de software profesional
http://www.bisoft.es
User avatar
jfgimenez
Site Admin
Posts: 5628
Joined: Mon Apr 06, 2015 8:48 pm
Contact:

Re: Duda sobre lHideOnClose

Postby jfgimenez » Mon Sep 14, 2020 6:58 pm

Bingen,

siempre puedes llamar a OnInitialize manualmente. Respecto a que hace cosas raras, tienes que tener en cuenta que los controles están creados e inicializados, por lo que habrá cosas que no debas hacer al mostrarlo por segunda vez. P.ej., podrías tener un combo que se rellena en el OnInitialize con valores que sacas de la BD; si vuelves a rellenarlo entonces tendrás los elementos por duplicado.

Mi consejo es que te crees un método Reset() como te dijo Ignacio, y hagas ahí todo el "reseteo" de los controles. En el método Initialize() deberías hacer lo que necesites por primera vez y a continuación llamar a ::Reset() para que termine de resetear. Por supuesto, en este caso, cuando muestres el formulario no debes llamar manualmente a OnInitialize, sino a Reset()
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info

Return to “Spanish”