Hola Deiv:
Fijate que he estado revisando el codigo, lo he desinstalado y vuelto a instalar y funciona bien.
Las propiedades son:
ColorFocus : Color de fondo con el foco
ColorNoFocus : Color de fondo sin el foco
FontColorFocus : Color de la fuente con el foco
FontColorNoFocus : Color de la fuente sin el foco
Por defecto y siempre al recibir el foco la letra se pone en negrita.
Fijate nuevamente por favor y si no te funciona no se que pueda ser, seria bueno que otros amigos del club lo probaran y me dijeran si les pasa lo mismo.
Nuevamente el codigo que acabo de compilar y que tengo funcionando en mi maquina
Código Delphi
[-]
unit CoolEdit;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, StdCtrls, Graphics, Forms;
type TCoolEdit = class(TEdit)
private
fColorWithFocus : TColor;
fColorWithOutFocus : TColor;
FColorFont : TColor;
fFontColorFocus : TColor;
fFontColorNoFocus : TColor;
Foco : Boolean;
Procedure SetColor(Value:TColor);
Procedure SetColorNoFocus(Value:TColor);
Procedure SetFontColorFocus(Value:TColor);
Procedure SetFontColorNoFocus(Value:TColor);
protected
Procedure WMSetFocus(var Message:TWMSetFocus);message WM_SETFOCUS;
Procedure WMKillFocus(var Message:TWMKillFocus);Message WM_KILLFOCUS;
public
Constructor Create(AOwner:TComponent);override;
Destructor Destroy;override;
published
Procedure RePaint;Override;
Property ColorFocus : TColor Read fColorWithFocus Write SetColor Default clAqua;
Property ColorNoFocus : TColor Read fColorWithOutFocus Write SetColorNoFocus Default clSilver;
Property FontColorFocus : TColor Read fFontColorFocus Write SetFontColorFocus Default clBlue;
Property FontColorNoFocus: TColor Read fFontColorNoFocus Write SetFontColorNoFocus Default clBlack;
end;
Procedure Register;
implementation
Procedure TCoolEdit.SetFontColorFocus(Value:TColor);
Begin
fFontColorFocus:=Value;
Repaint;
End;
Procedure TCoolEdit.SetFontColorNoFocus(Value:TColor);
Begin
fFontColorNoFocus:=Value;
Repaint;
End;
Constructor TCoolEdit.Create(AOwner:TComponent);
Begin
Inherited Create(AOwner);
Color:=clSilver;
fColorWithFocus:=clAqua;
fColorWithOutFocus:=clSilver;
fFontColorFocus:=clBlue;
fFontColorNoFocus:=clBlack;
End;
Procedure TCoolEdit.WMSetFocus(var Message:TWMSetFocus);
Begin
Inherited;
Foco:=True;
Repaint;
End;
Procedure TCoolEdit.WMKillFocus(var Message:TWMKillFocus);
Begin
Inherited;
Foco:=False;
Repaint;
End;
Procedure TCoolEdit.Repaint();
Begin
If Foco Then Begin
Font.Style:=[fsBold];
Font.Color:=fFontColorFocus;
Color:=fColorWithFocus;
End
Else begin
Font.Style:=[];
Font.Color:=fFontColorNoFocus;
Color:=fColorWithOutFocus;
End;
End;
Procedure TCoolEdit.SetColor(Value:TColor);
Begin
If fColorWithFocus <>Value Then Begin
fColorWithFocus:=Value;
Repaint;
End;
End;
Procedure TCoolEdit.SetColorNoFocus(Value:TColor);
Begin
If fColorWithOutFocus <>Value Then Begin
fColorWithOutFocus:=Value;
Repaint;
End;
End;
Destructor TCoolEdit.Destroy;
Begin
Inherited Destroy;
End;
procedure Register;
begin
RegisterComponents('Cool', [TCoolEdit]);
end;
end.