Hola,
A ver si este componente te da alguna idea:
Código Delphi
[-]
unit UFocoEdit;
interface
uses
Messages, SysUtils, Classes,
Controls, StdCtrls, Graphics,
UTypesDecComp;
type
TFocoEdit = class(TEdit)
private
FAcercade: TAcercade;
published
property Acercade: TAcercade read FAcercade write FAcercade stored false;
private
FCopiaColor: TColor;
FCopiaFuente: TFont;
FFontEnfocado: TFont;
FColorEnfocado: TColor;
procedure FijarFuenteEnfocado(valor: TFont);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
protected
procedure CMExit(var Message: TWMNoParams); message CM_EXIT;
procedure CMEnter(var Message: TCMGotFocus); message CM_ENTER;
published
property FuenteEnfocado: TFont read FFontEnfocado write FijarFuenteEnfocado;
property ColorEnfocado: TColor read FColorEnfocado write FColorEnfocado default clWhite;
end;
implementation
{$I ..\inc\rsDecComp.inc}
constructor TFocoEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Color := $00F7F7F7;
FColorEnfocado := clWhite;
FCopiaFuente := TFont.Create;
FFontEnfocado := TFont.Create;
end;
destructor TFocoEdit.Destroy;
begin
FFontEnfocado.Free;
FCopiaFuente.Free;
inherited Destroy;
end;
procedure TFocoEdit.CMEnter(var Message: TCMGotFocus);
begin
inherited;
FCopiaColor := Self.Color;
FCopiaFuente.Assign(Self.Font);
Self.Color := FColorEnfocado;
Font.Assign(FFontEnfocado);
end;
procedure TFocoEdit.CMExit(var Message: TWMNoParams);
begin
inherited;
Self.Color := FCopiaColor;
Self.Font.Assign(FCopiaFuente);
end;
procedure TFocoEdit.FijarFuenteEnfocado(valor: TFont);
begin
if FFontEnfocado <> valor then
FFontEnfocado.Assign(valor);
end;
end.