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.

Destruir ventanas no modales

Foro público de Xailer en español
Responder
Christian
Mensajes: 290
Registrado: Mié Abr 23, 2008 10:18 pm

Destruir ventanas no modales

Mensaje por Christian »

Estoy comenzando a trabajar con ventanas modales y asi las creo y las llamo:
procedure EditaLineasAfuera()
static oWnd
if valtype(oWnd)<>'O'
oWnd:=tEditaLineasAfuera():New()
endif
oWnd:Show()
return
Pero mi duda existencial es cuando y como las destruyo ?, desde ya
muchas gracias
Rene Flores
Mensajes: 620
Registrado: Jue Mar 23, 2006 2:39 am

Destruir ventanas no modales

Mensaje por Rene Flores »

Christian:
Creo que estas haciendo algo mal:
> procedure EditaLineasAfuera()
> static oWnd
>
> if valtype(oWnd)<>'O'
> oWnd:=tEditaLineasAfuera():New()
> endif
> oWnd:Show()
>
> return
¿ Cual es el contenedor de la ventana ?, quiero decir, el metodo
constructor NEW, requiere recibir un contenedor del formulario (SELF o
APPLICATION segun sea el caso.
Tampoco necesitas guardar en una variable estatica el valor de una
ventana, el objeto APPLICATION de Xailer lleva un control de los
formularios creados, por lo que no es necesario que guardes el
formulario en una variable.
> Pero mi duda existencial es cuando y como las destruyo ?, desde ya
> muchas gracias
No es necesario destruirla, cuado ejecutas el metodo ::Close() del
formulario este se encarga de ello, si usas la propiedad de
::lHideOnClose, entonces el formulario no se destruye, simplemente se
oculta y se vuelve a mostrar cuando lo necesitas nuevamente, mejorando
el desempeño de la aplicacion al no tener que disponer del objeto en
memoria.
En general no es necesario complicarse la vida como en el "otro
producto" porque Xailer tiene varias maneras de controlar tanto el MDI
como el SDI y todas accesibles usando propiedades ya sea del objeto
APLICATION o del objeto TFORM.
Saludos
Rene Flores
http://www.ciber-tec.com
--------------------------
Nos vemos en España del 21 de Noviembre al 1 de Diciembre
Mas informes: www.geroa-software.com/cursos.htm
Christian
Mensajes: 290
Registrado: Mié Abr 23, 2008 10:18 pm

Destruir ventanas no modales

Mensaje por Christian »

Muchas gracias por la respuestas, viendo lo que me dijiste lo estoy
haciendo asi :
local i
i:=ascan(Application:aForms,{|x|
upper(alltrim(x:classname)) == 'TEDITALINEASAFUERA' })
if i==0
tEditaLineasAfuera():New(Application):Show()
else
Application:aForms:Restore()
Application:aForms:SetFocus()
Application:aForms:Show()
endif
y me funciona bien, por las dudas si sabes de algun post donde pueda
aprender mas de ventanas mdi y no modal enviame el link, muchas gracias.
Rene Flores escribió:
> Christian:
>
> Creo que estas haciendo algo mal:
>
>> procedure EditaLineasAfuera()
>> static oWnd
>>
>> if valtype(oWnd)<>'O'
>> oWnd:=tEditaLineasAfuera():New()
>> endif
>> oWnd:Show()
>>
>> return
>
> ¿ Cual es el contenedor de la ventana ?, quiero decir, el metodo
> constructor NEW, requiere recibir un contenedor del formulario (SELF o
> APPLICATION segun sea el caso.
>
> Tampoco necesitas guardar en una variable estatica el valor de una
> ventana, el objeto APPLICATION de Xailer lleva un control de los
> formularios creados, por lo que no es necesario que guardes el
> formulario en una variable.
>
>> Pero mi duda existencial es cuando y como las destruyo ?, desde ya
>> muchas gracias
>
> No es necesario destruirla, cuado ejecutas el metodo ::Close() del
> formulario este se encarga de ello, si usas la propiedad de
> ::lHideOnClose, entonces el formulario no se destruye, simplemente se
> oculta y se vuelve a mostrar cuando lo necesitas nuevamente, mejorando
> el desempeño de la aplicacion al no tener que disponer del objeto en
> memoria.
>
> En general no es necesario complicarse la vida como en el "otro
> producto" porque Xailer tiene varias maneras de controlar tanto el MDI
> como el SDI y todas accesibles usando propiedades ya sea del objeto
> APLICATION o del objeto TFORM.
>
> Saludos
>
> Rene Flores
> http://www.ciber-tec.com
> --------------------------
> Nos vemos en España del 21 de Noviembre al 1 de Diciembre
> Mas informes: www.geroa-software.com/cursos.htm
Responder