Página 1 de 1

Problemas con propiedad lCancel de TGlassBtn

Publicado: Jue May 01, 2014 8:30 pm
por Claudio[1]
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

Problemas con propiedad lCancel de TGlassBtn

Publicado: Vie May 02, 2014 10:13 am
por jfgimenez
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

Problemas con propiedad lCancel de TGlassBtn

Publicado: Vie May 02, 2014 1:12 pm
por Claudio[1]
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