Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-05-2004
squenda squenda is offline
No confirmado
 
Registrado: dic 2003
Ubicación: México D.F.
Posts: 61
Poder: 0
squenda Va por buen camino
ayuda con color en controles activos

Hola a todos, una vez mas dando lata, lo que necesito saber en esta ocacion es:

a los controles de edicion de un formulario como son edits, combo box, memos y de fecha como el date time picker necesito colorearlos cuando tienen el foco, lo que hago es que en el evento OnEnter de cada control les asigno algun color...

edt_clientes.color := clRed;

y en el evento OnExit les devuelvo el color original...

edt_clientes.color := clWindow;

pero es de verdad una lata estar haciendo esto para cada control, imaginense cuando hay 30 o mas controles.... que hueva!!

asi que decidi pedir ayuda para ver si alguien sabe de algun procedimiento que haga lo anterior sin tanto rollo.

de antermano muchas gracias

saludos
Responder Con Cita
  #2  
Antiguo 08-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.243
Poder: 21
jachguate Va por buen camino
Cool

Se me ocurre que podes hacer un único procedimiento genérico que cambie wel color para la entrada y otro para la salida...

Algo como:

Código Delphi [-]
Procedure TForm1.ControlEnter(Sender : TObject);

Begin
  (sender as TControl).Color := clRed;
End;

Procedure TForm1.ControlExit(Sender : TObject);

Begin
  (sender as TControl).Color := clWindow;
End;

Y en el evento onCreate de tu forma, hacer un ciclo que itere por los controles del formulario, y asigne estos procedimientos genériocos a los eventos OnEnter y OnExit de todos. Si tenes mas de un formulario, podes usar herencia visual para conseguir, en un solo paso, el mismo comportamiento en todos los formularios de tu aplicación.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 09-05-2004
Avatar de Paoti
Paoti Paoti is offline
Miembro
 
Registrado: may 2003
Ubicación: Monterrey. N.L., México
Posts: 612
Poder: 15
Paoti Va por buen camino
Hola!!!

una forma más fácil, es crear tu primer cuadro de texto, con el cambio de colores

Código Delphi [-]
Procedure TForm1.TEDIT1Enter(Sender : TObject);

Begin
  (sender as TControl).Color := clRed;
End;

Procedure TForm1.Edit1Exit(Sender : TObject);

Begin
  (sender as TControl).Color := clWindow;
End;

enseguida, seleccionas el siguiente TEdit, y te vas al inspector de objetos y en la pestaña eventos, te vas al evento OnEnter, y seleccionas de la lista desplegable el procemiento que definiste para tu primer TEdit, y asi con los demas controles, y tendras el mismo comportamiento, solamente habiendo programado una sola vez tu procedimiento.....



Espero te sirva, hasta luego...
Responder Con Cita
  #4  
Antiguo 09-05-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 22
Lepe Va por buen camino
Siguiendo la filosofia de Paoti, en lugar de ir por cada control, puedes ir al ObjectTreeview y seleccionar todos los controles de una vez para asignarle los evento de una sola tacada.

Digo esto, porque si tienes Pagecontrols en tu form o varios paneles, se te hace muy engorroso ir seleccionandolos uno a uno los controles.

Saludos.
Responder Con Cita
  #5  
Antiguo 10-05-2004
Jose_T Jose_T is offline
Miembro
 
Registrado: may 2004
Posts: 15
Poder: 0
Jose_T Va por buen camino
Cambiar el color al recibir y perder el foco.

Hola,

échale un ojo al código del componente TScrollBoxCursor que está disponible en la sección de componentes del clubdelphi. En él hago que todos los controles que estén posicionados dentro del mismo, tengan el comportamiento que andas buscando.

Si bien no te sirve el control en cuestión, que además aporta la funcionalidad de desplazarte entre controles con las teclas del cursor, sin tener en cuenta el TabOrder, sino el orden de posicionamiento de los controles, al menos sí podrás entender cómo yo lo hice, que posiblemente te sirva.

Un saludo,

Jose_T
http://www.madridsoft.com
Consultas de Delphi, VB, SQL y otros gratis.
Responder Con Cita
  #6  
Antiguo 10-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.243
Poder: 21
jachguate Va por buen camino
Pues yo defiendo mi postura de hacerlo en tiempo de ejecución, pues no implica el cuidad de hacerlo uno a uno en tiempo de diseño. Podes idear un mecanismo para crear un enlace a eventos asignados en tiempo de diseño y que estos no se pierdan, para poder aumentar la funcionalidad, además de valerte, por ejemplo del tag, para controles que no querras que tengan ese comportamiento... en fin, el límite es la imaginación.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 11-05-2004
squenda squenda is offline
No confirmado
 
Registrado: dic 2003
Ubicación: México D.F.
Posts: 61
Poder: 0
squenda Va por buen camino
pues muchas gracias a todos, estoy intentando cada una de sus sugerencias a ver con cual me quedo. gracias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 03:33:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi