Página 1 de 1

Duda sobre lHideOnClose

Publicado: Lun Sep 14, 2020 3:06 pm
por bingen
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.

Re: Duda sobre lHideOnClose

Publicado: Lun Sep 14, 2020 6:58 pm
por jfgimenez
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()