[Lazarus-es] cambiar color de un edit

Jose Antonio Cuello jcuello en artextrading.com
Mar Ene 17 11:37:46 CET 2017


El problema es que si asignas el procedimiento al OnClick cuando el usuario use el teclado (Enter o Tab) no te funcionará. Para este caso, mejor usar el evento OnEnter como sugería el compañero. 

Por otro, con esta solución cada vez que cambia el foco "rastreas" todos los objetos pintando clWindow en objetos TEdit que ya tienen ese color. Y también tengo dudas de como se comportará si sobre el formulario tienes Paneles, GroupBox, o componentes con distintas páginas y los TEdits están contenidos dentro. 

Un saludo 


De: "hfiandor via Lazarus-es" <lazarus-es en lists.lazarus-ide.org> 
Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus-ide.org> 
CC: "hfiandor" <hfiandor en ceniai.inf.cu> 
Enviados: Martes, 17 de Enero 2017 11:34:37 
Asunto: Re: [Lazarus-es] cambiar color de un edit 



Amigos listeros: 



Ante todo, mil gracias por todo lo que me han sugerido, que he guardado para estudiarlo con más detalle después. 



Finalmente probé con esta solución, que parece que funciona: 



Hice un procedure que declaro como { private declarations } así: 



procedure TfNotasAux.quitarcolor; 

begin 

for i := 0 to self.ComponentCount-1 do 

begin 

if self.Components[i] is TEdit then 

begin 

if TEdit(Components[i]).Focused then 

TEdit(Components[i]).Color:= clYellow 

else 

TEdit(Components[i]).Color:= clWindow ; 

end; 

end; 

end; 



En el cuerpo del programa para cada edit que tengo disponible para activar le hago un evento OnClick así: 



procedure TfNotasAux.eGrupoDesdeClick(Sender: TObject); 

begin 

quitarcolor; 

end; 



y parece que esto funciona. 



Cada día que aprendo algo nuevo me doy cuenta de que no sé nada. 



Saludos 

Ing. Héctor F. Fiandor Rosario 






















De: Lazarus-es [mailto:lazarus-es-bounces en lists.lazarus-ide.org] En nombre de Ismael L. Donis Garcia via Lazarus-es 
Enviado el: lunes, 16 de enero de 2017 12:22 p. m. 
Para: Spanish version of Lazarus List 
CC: Ismael L. Donis Garcia 
Asunto: Re: [Lazarus-es] cambiar color de un edit 





Como te dije antes a cada componente le programas los 2 eventos. 





Cuando coge el foco: 





procedure TForm1.Edit1Enter(Sender: TObject); 
begin 
Edit1.Color:= clYellow 
end; 








Y cuando pierde el foco: 





procedure TForm1.Edit1Exit(Sender: TObject); 
begin 
Edit1.Color:= clWindow 
end; 








Esto lo tienes que hacer para todos los componentes que quieres ponerle el color personalizado. 








En el ejemplo que te puse Edit1 es el nombre de la caja de texto. 





Saludos Reiterados 
======== 
| ISMAEL | 
======== 





----- Original Message ----- 


From: hfiandor via Lazarus-es 


To: 'Spanish version of Lazarus List' 


Cc: hfiandor 


Sent: Monday, January 16, 2017 11:38 AM 


Subject: Re: [Lazarus-es] cambiar color de un edit 





Estimado Ismael: 

Mi problema es que tengo un form con varios edit para indicar rangos DESDE y HASTA. 

Cuando el form hace Show yo selecciono la primera casilla y mi lío está cuando quiero activar otra casilla. Lo puedo hacer con el ratón pinchando la casilla y le doy color Yellow para indicar que está activa, 

Pero no sé cómo quitar el color Yellow de la primera que se pintó cuando hizo Show. 

Tuve la rutina para quitar el foco a todos los componentes del form, pero la he perdido y quisiera probar con ella. 



Saludos 

Ing. Héctor F. Fiandor Rosario 



_______________________________________________ 
Lazarus-es mailing list 
Lazarus-es en lists.lazarus-ide.org 
http://lists.lazarus-ide.org/listinfo/lazarus-es 



_______________________________________________ 
Lazarus-es mailing list 
Lazarus-es en lists.lazarus-ide.org 
http://lists.lazarus-ide.org/listinfo/lazarus-es 
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20170117/195cd550/attachment-0001.html>


Más información sobre la lista de distribución Lazarus-es