Alegrando la vista a nuestras aplicaciones
Noviembre 22nd, 2006
En las aplicaciones de gestión normalmente se debe mostrar de forma clara cual control de entrada de datos tiene el foco. Hay varias maneras de llamar la atención del usuario al control con el foco. Las más habituales son las de cambiar al color del fondo del control edit. Pero, para mi gusto, cuando el usuario marca una parte de texto se ven varios colores en el mismo control.
Hasta que vi el escritorio Gnome y me gustó mucho. La idea es hacer que el marco del control edit cambie de color cuando tenga el foco. Xailer facilita enormemente la tarea de personalizar nuestros controles o clases. Con las técnicas de la jerarquía de clases X y T podemos modificar aquello que nos interese sin que por ello tengamos que preocuparnos de la clase original.
Bueno… el resultado es este

Y el código para conseguir ese efecto está en este proyecto de Xailer. Fijaros en como se sobreescribe la clase tEdit, concretamente el método WMNCPAINT. Si lo quereis incorparar a vuestros proyectos Xailer solo teneis que ‘cortar’ y ‘pegar’ ese código. Así de simple. Si tenemos algo de conocimiento del API de Windows fácilmente podemos cambiar esos cantos rectos por otros redondeados usando, por ejemplo, la función RoundRect. También, aprovechando que sobreescrimimos el control, podemos cambiar el comportamiento por defecto del mismo. Por ejemplo, podemos hacer que el color de fondo del control edit cuando tiene el foco sea otro cambiando la propiedad nClrPaneFocus. Se haría en la definición de la clase de esta manera:
PROPERTY nClrPaneFocus INIT RGB( 255, 55, 255 )
Bueno… el resto es para vosotros
Os dejo… Salud!
PD: el código es íntegramente de José F. Giménez. Gracias José !!!
Entrada clasificada en: Técnico

4 Comentarios
1. mario | Noviembre 23rd, 2006 at 9:07 am
Si tanto te gusta Gnome, pásate a Linux, ánimo.
2. José Luis Capel | Noviembre 23rd, 2006 at 2:33 pm
Mario…
Uso ambos… uso ambos…
Saludos.
3. PEDRO DE LEON RODAS | Noviembre 26th, 2006 at 6:43 am
HOLA QUE TAL, DESDE MEXICO.
ESTOY EMPEZANDO A PROGRAMAR CON XAILER
QUISIERA PEDIRLES QUE ME APOYEN CON UN EJEMPLO
¿ COMO PUEDO LOCALIZAR UN REGISTRO POR MEDIO DE UN ORDEN DE INDICE?
DE ANTEMANO GRACIAS
4. José Luis Capel | Noviembre 26th, 2006 at 9:23 am
Hola Pedro…
Te animo a que leas y participes en el foro de noticias de Xailer: news.xailer.com Allí podrás obtener la ayuda que te sea precisa.
Saludos