Hola Deiv:
Perdon por la demora; aqui tenes el código corregido :
Falta darle unos retoques aun pero ahi va.
Vas a encontrar cosas como por ejemplo que conviven la propiedad Color(
la que trae por defecto) y ColorNoFocus (
que es la que le puse yo), traté de que el efecto de "normalización" a la hora de perder el foco se produjera con la misma propiedad Color(
por defecto del componente) pero si hago eso se pone todo en negro y todavia no encuentro el porqué (
que seguro es una burrada que estoy obviando por ser eso : una burrada).
Seguramente alguien le puede encontrar la vuelta y darle remedio; yo lo seguiré intentando al igual que con las fuentes que; posiblemente cambie todo a TStyleFont.
Espero te sirva y si le haces cambios avisame.
GRACIAS por comprar mi producto jajajajajaja noooo; una broma
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.