FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Cambiar color de los controles de edicion al entrar en ellos utilizando VCL Styles
Hola amigos,
Buscando en nuestro ClubDelphi encontre este link http://clubdelphi.com/foros/showthread.php?t=87442 el cual muestra una forma genérica de cambiar el color al edit que tiene el foco, pero cuando Utilizo los VCL Styles no funciona el código ofrecido por nuestro amigo ecfisa; buscando encontre este link que se utiliza para cambiar el color de los controles cuando se utilizan los VCL Styles https://theroadtodelphi.com/2012/02/06/changing-the-color-of-edit-controls-with-vcl-styles-enabled/ . Con el código se puede cambiar el color de los edits entre otros utilizando los VCL Styles pero trate de hacer una combinación de ambos para hacer que cuando un edit coja el foco cambie de color y al perder el foco vuelva a su color original con los VCL Styles pero no funciona. Agradecido como siempre de su bondad y deseo de ayudar a los demás. |
#2
|
|||
|
|||
Me respondo
Código:
... type TForm1 = class(TForm) ... procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private procedure ActiveCtrlChange(Sender: TObject); ... end; ... implementation uses TypInfo; const FOCUSEDCOLOR = clMoneyGreen; UNFOCUSEDCOLOR = clWindow; var PrevFocusedCtrl: TWinControl = nil; procedure TForm1.FormCreate(Sender: TObject); begin Screen.OnActiveControlChange:= ActiveCtrlChange; end; procedure TForm1.ActiveCtrlChange(Sender: TObject); begin if not Assigned(PrevFocusedCtrl) then PrevFocusedCtrl:= ActiveControl; if Assigned(GetPropInfo(PrevFocusedCtrl.ClassInfo, 'Color')) then begin // SetOrdProp(PrevFocusedCtrl, 'Color', UNFOCUSEDCOLOR); if PrevFocusedCtrl.StyleElements = [seBorder] then PrevFocusedCtrl.StyleElements:=[seFont, seClient, seBorder]; end; if Assigned(GetPropInfo(ActiveControl.ClassInfo, 'Color')) then begin SetOrdProp(ActiveControl,'Color', FOCUSEDCOLOR); Activecontrol.StyleElements:=[seBorder]; PrevFocusedCtrl:= ActiveControl; end; end; procedure TForm1.FormDestroy(Sender: TObject); begin Screen.OnActiveControlChange:= nil; end; ... |
#3
|
||||
|
||||
Gracias por compartir la solución
Saludos |
#4
|
||||
|
||||
Hola
Lo mismo digo, muy agradecido de que hayas publicado la respuesta. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cambiar color de los DBEdit al entrar en ellos | Delphitest | Varios | 7 | 07-02-2015 08:29:33 |
Cambiar color de letras de acuerdo al color de fondo | Adrian Murua | OOP | 2 | 15-11-2008 18:36:21 |
Mantener color verde olivo de las ventanas, al cambiar el color en windows | mancurnino | Varios | 6 | 11-03-2008 15:39:47 |
Como puedo cambiar la propiedad de edicion y no edicion a un StringGrid1 | ctronx | Varios | 2 | 25-06-2004 23:10:19 |
ayuda con color en controles activos | squenda | OOP | 6 | 11-05-2004 10:33:23 |
|