FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Cambiar el color de la fuente en campos deshabilitados
Hola.
Cuando deshabilito un campo edit, este adopta un color de fuente gris y me gustaría poder controlarlo para que dejarlo en negro u otro color. Tengo un componente hecho heredado de él, y me gustaría poder configurar el campo cuando queda deshabilitado. Un saludo. |
#2
|
||||
|
||||
TEdit deriva de TControl y TControl tiene el procedimiento SetEnabled de acceso a la propiedad Enabled como virtual, por lo tanto deberías poder sobreescribirlo.
Prueba a sobreescribir este procedimiento (override) en tu componente y cambiar el color de la fuente después de llamar al inherited. ¿Me expliqué bien?
__________________
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
|
|||
|
|||
No funciona eso. Es lo primero que hice, pero no va. Parece que al pintar el componente tiene fijado ese color de fuente.
¿La alternativa parece que pasará por pintar yo el texto dentro del campo y con el color del font correcto? Un saludo. |
#4
|
||||
|
||||
Cita:
Ambos en TWinControl.
__________________
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. |
#5
|
|||
|
|||
Bueno, pues al final lo he hecho de la forma siguiente:
Código:
type TMiEdit = class(TEdit) ... procedure WMPAINT(var Msg : TMessage); message WM_PAINT; .... procedure TMiEdit.WMPAINT(var Msg: TMessage); begin inherited; if not enabled then Pintar_Texto; end; procedure TMiEdit.Pintar_Texto; var DC : HDC; Canvas: TCanvas; ps: TPaintStruct; CallEndPaint: Boolean; R:TRect; begin DC := GetWindowDC(Self.Handle); R:=ClientRect; CallEndPaint := False; Canvas:=TCanvas.Create; try if DC <> 0 then begin Canvas.Handle := DC; ps.fErase := true; end else begin BeginPaint(Handle, ps); CallEndPaint:= True; Canvas.handle := ps.hdc; end; if ps.fErase then Perform(WM_ERASEBKGND, Canvas.Handle, 0); SaveDC(canvas.handle); try Canvas.Brush.Style := bsClear; Canvas.Font := Font; Canvas.Font.Color := clBlack; Canvas.TextRect(R,3,3,text); finally RestoreDC(Canvas.Handle, - 1); end; finally if CallEndPaint then EndPaint(handle, ps); Canvas.Free; ReleaseDC(Self.handle,DC); end; end; Salu2. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
cambiar Color de la fuente de un Tdbedit | nenufer | OOP | 8 | 26-05-2006 16:30:52 |
Cambiar el color de la fuente | chipsoni | Varios | 2 | 24-04-2006 13:52:12 |
Cambiar color de fuente de un String Grid. | alfredosg19 | OOP | 2 | 27-03-2005 18:48:10 |
Cambiar la fuente, el color del texto y su tamaño en un tmemo | gaska | OOP | 1 | 06-05-2004 19:09:02 |
Color de fuente en Edit !!! | vpepen | Varios | 4 | 05-12-2003 13:01:42 |
|