Página 1 de 1
TForm:OnClose
Publicado: Mar Ago 08, 2006 9:17 am
por zeasoftware
Tengo algo curioso, unas ventanas MDI que uso en mi aplicacion me estan eliminando los datos de mi StatusBar, la razon? aun no la detecto.
Uso lo siguiente:
TForm1:OnClose := {|| TForm:=Nil, .t. }
Esto lo hago para saber si la ventana ya esta abierta, por lo que solo hago un Show, y si la cierro, pues pongo el valor de la ventana a nil para crearla de nuevo, pero....., si uso mi opcion ::CLOSE(), todo bien, pero si uso la [X] de cerrar la ventana MDI, me elimina toda la informacion de la StatusBar del oMainForm.
Algun Bug? o algo estoy haciendo mal?, que hago mal?
Gracias.
--
Ramón Zea
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoft/
--
TForm:OnClose
Publicado: Mar Ago 08, 2006 11:44 am
por _support_
Ramón,
No veo claro el código que manda. Por favor mande un ejemplo y podremos ayudarle.
Un saludo,
"Ramón Zea" <
zeasoftware@hotmail.com> escribió en el mensaje news:[email=
44d83a94@news.xailer.com...]
44d83a94@news.xailer.com...[/email]
Tengo algo curioso, unas ventanas MDI que uso en mi aplicacion me estan eliminando los datos de mi StatusBar, la razon? aun no la detecto.
Uso lo siguiente:
TForm1:OnClose := {|| TForm:=Nil, .t. }
Esto lo hago para saber si la ventana ya esta abierta, por lo que solo hago un Show, y si la cierro, pues pongo el valor de la ventana a nil para crearla de nuevo, pero....., si uso mi opcion ::CLOSE(), todo bien, pero si uso la [X] de cerrar la ventana MDI, me elimina toda la informacion de la StatusBar del oMainForm.
Algun Bug? o algo estoy haciendo mal?, que hago mal?
Gracias.
--
Ramón Zea
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoft/
--
TForm:OnClose
Publicado: Mar Ago 08, 2006 7:24 pm
por zeasoftware
Uso esto:
METHOD Lineas( oSender ) CLASS SCIPrincipal
IF !( ::ofrmLineas == nil )
::ofrmLineas:SetFocus()
ELSE
::ofrmLineas := TLineas():New( Application:oMainForm )
::ofrmLineas:OnClose := {|| ::ofrmLineas := Nil, .t. }
ENDIF
If !( ::ofrmLineas == Nil )
::ofrmLineas:Show()
End
RETURN Nil
y sucede lo que describí en el principal mensaje.
Gracias.
Ramón Zea
--
TForm:OnClose
Publicado: Mar Ago 08, 2006 7:55 pm
por jose.luis
Hola Ramón,
En el código que muestras:
::ofrmLineas:OnClose := {|| ::ofrmLineas := Nil, .t. }
Qué sentido le das a ::oFrmLineas := NIL ??
Por lo que veo, en el evento onClose del formulario oFrmLineas, estás destruyendo el propio objeto oFrmLineas sin más, lo cual, bajo mi entender, puede ser un gran peligro para la estabilidad de tu aplicación.
Saludos,
José Luis Capel
"Ramón Zea" <
zeasoftware@hotmail.com> escribió en el mensaje news:[email=
44d8c8cb@news.xailer.com...]
44d8c8cb@news.xailer.com...[/email]
Uso esto:
METHOD Lineas( oSender ) CLASS SCIPrincipal
IF !( ::ofrmLineas == nil )
::ofrmLineas:SetFocus()
ELSE
::ofrmLineas := TLineas():New( Application:oMainForm )
::ofrmLineas:OnClose := {|| ::ofrmLineas := Nil, .t. }
ENDIF
If !( ::ofrmLineas == Nil )
::ofrmLineas:Show()
End
RETURN Nil
y sucede lo que describí en el principal mensaje.
Gracias.
Ramón Zea
--
TForm:OnClose
Publicado: Mar Ago 08, 2006 8:17 pm
por jfgimenez
Ramón,
Uso esto:
METHOD Lineas( oSender ) CLASS SCIPrincipal
IF !( ::ofrmLineas == nil )
::ofrmLineas:SetFocus()
ELSE
::ofrmLineas := TLineas():New( Application:oMainForm )
::ofrmLineas:OnClose := {|| ::ofrmLineas := Nil, .t. }
ENDIF
If !( ::ofrmLineas == Nil )
::ofrmLineas:Show()
End
RETURN Nil
y sucede lo que describí en el principal mensaje.
Con solo este código no puedo decirte qué puede estar fallando. Aparentemente no hay nada raro, pero necesito un ejemplo completo para revisarlo.
--
Un saludo,
José F. Giménez
http://www.xailer.com
--
TForm:OnClose
Publicado: Mié Ago 09, 2006 5:34 am
por zeasoftware
TForm:OnClose
Publicado: Mié Ago 09, 2006 9:21 am
por jose.luis
Ramón:
LOCAL oFrm
oFrm := tMiFormulario():New( Self )
oFrm:ShowModal()
oFrm sigue existiendo como objeto aunque los controles Windows se hayan destruido. Si quieres destruir el objecto oFrm, puedes hacer un oFrm:End() después del oFrm:ShowModal.
Saludos,
José Luis Capel
PD: Espero que me corrija José Giménez si me he equivocado
"Ramón Zea" <
zeasoftware@hotmail.com> escribió en el mensaje news:[email=
44d957c0@news.xailer.com...]
44d957c0@news.xailer.com...[/email]
Que valor tomaria oFrmLineas una vez cerrada la ventana?
Gracias..
--
Ramón Zea
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoft/
--
TForm:OnClose
Publicado: Mié Ago 09, 2006 9:56 am
por zeasoftware
Te explico un poco mas:
Este proceso lo estoy utilizando por que estoy usando ventanas MDI y pues los botones del mi ToolBar estan disponibles en todo momento, por lo que para saber si esa ventana ya se encuentra abierta hago el proceso que menciono en mensajes anteriores:
If ofrmXXXXX <> Nil /// ya esta abierta por lo que solo uso ofrmXXXX:Show()
Pero, si el usuario cierra dicha ventana, en vez de cambiar a otra es lo que me esta generando dicho "error".
Gracias por tu ayuda, todo es bienvenido.
--
Ramón Zea
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoft/
--
TForm:OnClose
Publicado: Mié Ago 09, 2006 10:52 am
por jfgimenez
Ramón, José Luis,
Te explico un poco mas:
Este proceso lo estoy utilizando por que estoy usando ventanas MDI y pues los botones del mi ToolBar estan disponibles en todo momento, por lo que para saber si esa ventana ya se encuentra abierta hago el proceso que menciono en mensajes anteriores:
If ofrmXXXXX <> Nil /// ya esta abierta por lo que solo uso ofrmXXXX:Show()
Pero, si el usuario cierra dicha ventana, en vez de cambiar a otra es lo que me esta generando dicho "error".
Esta técnica es correcta, de hecho es la que está usando el ejemplo dbfdata6 para evitar que el usuario abra varias veces el mismo apartado del programa. Pero en algún sitio tienes que tener algo mal, porque en dicho ejemplo está funcionando perfectamente.
--
Un saludo,
José F. Giménez
http://www.xailer.com
--
TForm:OnClose
Publicado: Mié Ago 09, 2006 11:31 am
por zeasoftware
Si pero en DBFData6 cambian de TForm a TFormFolder, y veo que el comportamiento es distinto, ya hice varias pruebas, incluso abri todas las ventanas, las intercambie, las cerre con mi opcion "cerrar" = ::Close() y nunca falla, es solo al usar la [x] de la ventana Hija.
Seguire buscando y les aviso.
Gracias.
--
Ramón Zea
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoft/
--
TForm:OnClose
Publicado: Jue Ago 10, 2006 10:30 am
por zeasoftware
Estoy notando que igual se me pierde la ToolBar cuando le doy click a alguna opcion del menu de la aplicacion, que podra ser?
Gracias.
--
Ramón Zea
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoft/
--
TForm:OnClose
Publicado: Jue Ago 10, 2006 1:11 pm
por zeasoftware
Tenia aplicada la propiedad lSimple := .t., ahora lo he quitado y se desaparece pero se reintegra, al parecer era uno de los culpables, pero sigo en las pruebas.
Gracias
6:00 am buenos dias desde Mexico
--
Ramón Zea
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoft/
--
TForm:OnClose
Publicado: Jue Ago 10, 2006 2:12 pm
por jlalin
Ramón,
no hay ninguna propiedad lSimple en ToolBar ni en Rebar.
Saludos,
José Lalín
TForm:OnClose
Publicado: Jue Ago 10, 2006 2:32 pm
por zeasoftware
No esta en la StatusBar, por que ahi radica mi problema.
Estoy notando que ahora, despues de poner lSimple := .f., ya se vuelve a
pintar la StatusBar, pero cuando voy a una opcion del oMenu, me la borra,
supongo por la opcion de mensaje en cada opcion del menu, pero no tengo
ningun mensaje en el menu.
Como indico que no quiero que me despliegue estos mensajes?
Gracias.
--
Ramón Zea
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoft/
TForm:OnClose
Publicado: Jue Ago 17, 2006 2:22 pm
por jfgimenez
Ramón,
> No esta en la StatusBar, por que ahi radica mi problema.
> Estoy notando que ahora, despues de poner lSimple := .f., ya se vuelve a
> pintar la StatusBar, pero cuando voy a una opcion del oMenu, me la borra,
> supongo por la opcion de mensaje en cada opcion del menu, pero no tengo
> ningun mensaje en el menu.
No sé si te he entendido bien, pero ese es el comportamiento normal de
windows. Cuando despliegas el menú de la ventana, la statusbar se pone en
modo simple (desaparecen todos los paneles) y muestra los mensajes
correspondientes a cada opción del menú sobre el que te sitúes. Lo puedes
ver en multitud de programas, p.ej. Internet Explorer, Outlook Express, ...
> Como indico que no quiero que me despliegue estos mensajes?
Puedes asignar el evento OnMenuSelect del formulario, aunque en él no hagas
absolutamente nada.
--
Un saludo,
José F. Giménez
http://www.xailer.com