FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Detectar evento cambio de foco
Hola a todos. Necesito una guia. Quiero hacer un componente que al soltarlo sobre el form, me tome todos los componentes del form y que el mismo componente cambie de color a los otros componentes al cambiar el foco. La cosa es que ya pude tomar todos los componentes, y tambien se como cambiarle el color a los componentes. Ahora bien, como hago para saber que hubo un cambio de foco entre componentes? Habra algun evento del form?.
|
#2
|
||||
|
||||
No acabo de ver en TForm ningun evento que puedas utilizar para eso.
Seguramente si utilizaras un derivado de éste (TForm) podrías capturar algun mensaje o sobreescribir algun procedimiento.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
||||
|
||||
Gracias Neftali, sigo buscando y nada todavia, por el momento cada componente cambia el color a si mismo cuando recibe o pierde el foco. Pero creo que lo ideal seria un solo componente que administre todo eso. En fin, seguire buscando. Saludos.
|
#4
|
|||
|
|||
Hola pborges36,
recorde haber visto algo similar, y puede que este link te ayude, no es un componente, pero creo que te servira de guia para hacer uno: http://delphi.about.com/od/vclusing/...ingfocused.htm La solucion para por usar Tscreen y la RTTI. Espero que te sea de ayuda... Oscar Noe
__________________
No dejes camino viejo por sendero nuevo Última edición por oscarnoe fecha: 10-11-2006 a las 20:29:35. |
#5
|
||||
|
||||
gracias Oscrnoe, lo voy a revisar y de paso practico mi ingles que esta un poco abandonado. jeje. Cualquier novedad te aviso y Gracias de nuevo.
|
#6
|
||||
|
||||
oscarnoe te paso el link justo, te estaba a punto de recomendar justamente la primera opcion del articulo.
Pero en el articulo te da una exelente solucion que es justo lo que necesitas. despues nos mostras como te quedo el componente
__________________
[Crandel] |
#7
|
||||
|
||||
Ya esta listo!!
Hola a todos. Quiero agradecerles enormemente porque finalmente, Con la ayuda de Uds. porsupuesto, termine el componente que me propuse. Y aqui les dejo el codigo, espero su opinion, comentarios y sugerencias para que vayamos mejorandolo. Gracias.
Solo tienen que soltarlo sobre su formulario principal y listo!! |
#8
|
||||
|
||||
muy bien !!!
Te quedo muy bien. Aprovechando que tengo un poco de tiempo libre (mi mujer y mi hijo no estan por un dia ) te hice unos cuantos retoques, espero que no te moleste.
Agregue colores por defecto, un evento cuando se produce el cambio de foco y reescribi el metodo ScreenActiveControlChange.
__________________
[Crandel] |
#9
|
||||
|
||||
Cita:
Creo que esto se puede optimizar (para cualquier componente que tenga esa propiedad) utilizando RTTI. Lo bueno de esto es que generalizando un poco la siguiente función se puede hacer para cualquier propiedad.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#10
|
||||
|
||||
Cita:
Este es el codigo que use:
__________________
[Crandel] |
#11
|
||||
|
||||
Cita:
De todas formas creo que sería mejor programarlo así y en todos caso aplicar código espacial para las exceciones y no al revés.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#12
|
||||
|
||||
Cita:
Cita:
El problema del TListBox es que no se redibuja correctamente completo, solo la parte de los items. Estuve probando recien para que se redibuje correctamente pero no logro que se redibuje el fondo. Para que se redibuje correctamente, tengo minimar y maximizar la aplicacion. Esto quiere decir que debe existir algun metodo que me lo repinte completo, pero no lo encuentro.
__________________
[Crandel] Última edición por Crandel fecha: 24-11-2006 a las 15:57:07. |
#13
|
||||
|
||||
¿No se están complicando mucho?
A quien se quiere cambiar de color es a un TWinControl y la propiedad Color aparece desde TControl. Sólo hay que desprotegerla:
// Saludos |
#14
|
||||
|
||||
Cita:
Igualmente sigue el problema del TListBox, que el tonto no se sabe repintar
__________________
[Crandel] |
#15
|
||||
|
||||
¿Y quién dice que estás haciendo pública toda la clase?
Fuera del código de AplicarColor, nadie podrá acceder a esas propiedades. // Saludos |
#17
|
|||
|
|||
Me da error al salir de la aplicación
Al terminar la aplicación me da error "Access Violation, read of address...", me imagino que tendré que destruir algo o intento acceder a algún objeto que ya no existe.
De todas formas, me imagino que habrá algún componente ya existente que haga esto mismo, yo tengo la Jedi VCL pero si lo hay no se localizarlo. |
#18
|
||||
|
||||
Hola a todos.
Ya se que este hilo es viejo pero es el que creo que va a hacer lo que necesito, cambiar el fondo de los controles a medida que van recibiendo el foco. He creado la unit y la he puesto en uses del form, pero no se pinta nada. He usado el código que retocó Crandel. Tambien probé el tema de las RTTI y funciona bien, cambia de color al recibir foco, pero al salir de un form Child, me deja una sombra negra en el form Padre. Gracias por adelantado Josep |
#19
|
||||
|
||||
Holas. Lo que hice fue poner la unit que retoco crandel en un dpk y luego instalarlo. Con esto me aparece en la paleta de componentes. De ahi solo lo solte en el formulario pricipal y listo, funciona muy bien.
Saludos. |
#20
|
||||
|
||||
Gracias, no lo habia entendido.
He creado y compilado el dpk, correcto; lo suelto en el for, correcto pero al hacer F9 el resultado es este: Project xxx.exe raised exception class EInvalidCast with message 'Invalid class Typecast' Process stoped Press Step or Run to continue. Alguna pistilla? Josep |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Detectar cambio de ItemIndex en ComboBox | ixMike | OOP | 5 | 19-10-2006 20:39:03 |
F9 - cambio de foco en pestaña | roman | La Taberna | 15 | 04-10-2006 08:46:03 |
Cambio al hacer foco con el mouse | c748a | OOP | 14 | 08-08-2005 17:31:35 |
Detectar el cambio de un directorio | NeWNeO | API de Windows | 2 | 03-01-2005 09:36:48 |
Capturar El Evento Del Cambio De Foco En Un Form | murci | API de Windows | 11 | 21-01-2004 09:39:13 |
|