Existe un problema en Xailer cuando se cambia la propiedad lCancel de un
botón TglassBtn.
El problema se presentó cuando un botón cerraba el formulario siempre,
más allá del estado de lCancel en el IDE.
Para reproducirlo se siguen los siguientes pasos:
1- Al copiar desde un TglassBtn que tiene la propiedad lCancel = .t.
Xailer genera el siguiente código ( ver nModalResult:= mrCancel )
WITH OBJECT ::oConfirmar := TGlassBtn():New( ::oGroupLegajos )
:SetBounds( 688, 340, 120, 32 )
:cText := "Confirmar"
:nModalResult := mrCANCEL
:OnClick := "ConfirmarClick"
:Create()
END
Si se cambia la propiedad lCancel a .f. en Xailer no se modifica el
fuente XFM y al pulsar el botón sigue cerrandose el formulario.
2- Se agrega un nuevo boton con lCancel:=.f. y se genera el siguiente
código (.xfm)
WITH OBJECT ::oGlassBtn1 := TGlassBtn():New( ::oGroupLegajos )
:SetBounds( 832, 340, 120, 32 )
:cText := "Confirmar Vales"
:OnClick := "GlassBtn1Click"
:Create()
END
Este nuevo botón NO cierra el formulario ( es correcto )
3- Si en el nuevo botón cambiamos lCancel a .t. el cambio es salvado al
xfm y el botón cierra al form ( correcto ).
4- Si ahora en el nuevo botón cambiamos lCancel a .f. el cambio NO es
salvado al xfm y el botón sigue cerrando el form ( mal ).
En Resumen: Xailer no actualiza el xfm cuando se cambia la propiedad
lCancel del estado .t. al estado .f. en un TglassBtn
Espero esto sirva de aporte a esta excelente herramienta.
Saludos,
Claudio
---
Este mensaje no contiene virus ni malware porque la protección de avast! Antivirus está activa.
http://www.avast.com
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.
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.
Problemas con propiedad lCancel de TGlassBtn
-
- Mensajes: 59
- Registrado: Vie May 01, 2009 5:40 am
Problemas con propiedad lCancel de TGlassBtn
Claudio,
no es exactamente un bug, te explico:
La propiedad lCancel de TButton (y de todos los botones que derivan de
TButton), cuando la pones a .T., automáticamente se cambia nModalResult
a mrCANCEL; no tendría sentido que no fuera así. Pero cuando la vuelves
a poner a .F., el IDE no cambia el valor de nModalResult, porque no sabe
si inicialmente su valor fue cambiado por la propiedad lCancel o por el
usuario. Dicho de otra forma, si has cambiado lCancel y no quieres que
nModalResult valga mrCANCEL, entonces deberás cambiarlo manualmente.
Todo esto se debe a que aunque ambas propiedades tienen una relación
directa, cada una sirve para un propósito distinto. lCancel controla que
dicho botón se dispare al pulsar la tecla Escape dentro del formulario,
mientras que nModalResult provoca que se cierre el diálogo y se retorne
el valor indicado. Claro, cuando un botón es de tipo "cancelar", lo
normal es que haga ambas cosas: dispararse al pulsar Escape y cerrar el
formulario retornando mrCANCEL.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
no es exactamente un bug, te explico:
La propiedad lCancel de TButton (y de todos los botones que derivan de
TButton), cuando la pones a .T., automáticamente se cambia nModalResult
a mrCANCEL; no tendría sentido que no fuera así. Pero cuando la vuelves
a poner a .F., el IDE no cambia el valor de nModalResult, porque no sabe
si inicialmente su valor fue cambiado por la propiedad lCancel o por el
usuario. Dicho de otra forma, si has cambiado lCancel y no quieres que
nModalResult valga mrCANCEL, entonces deberás cambiarlo manualmente.
Todo esto se debe a que aunque ambas propiedades tienen una relación
directa, cada una sirve para un propósito distinto. lCancel controla que
dicho botón se dispare al pulsar la tecla Escape dentro del formulario,
mientras que nModalResult provoca que se cierre el diálogo y se retorne
el valor indicado. Claro, cuando un botón es de tipo "cancelar", lo
normal es que haga ambas cosas: dispararse al pulsar Escape y cerrar el
formulario retornando mrCANCEL.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
-
- Mensajes: 59
- Registrado: Vie May 01, 2009 5:40 am
Problemas con propiedad lCancel de TGlassBtn
Hola Jose
Como siempre, muy claro.
Habrá que tener presente este tema.
Muchas Gracias.
Claudio
---
Este mensaje no contiene virus ni malware porque la protección de avast! Antivirus está activa.
http://www.avast.com
Como siempre, muy claro.
Habrá que tener presente este tema.
Muchas Gracias.
Claudio
---
Este mensaje no contiene virus ni malware porque la protección de avast! Antivirus está activa.
http://www.avast.com