Ver Mensaje Individual
  #16  
Antiguo 13-12-2006
pascalutn2003 pascalutn2003 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Córdoba
Posts: 36
Reputación: 0
pascalutn2003 Va por buen camino
Smile El codigo de CoolEdit corregido

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.

Última edición por pascalutn2003 fecha: 13-12-2006 a las 02:21:28.
Responder Con Cita