我要继承TEdit类写一个简单的组件,当获得输入焦点时变红色,失去输入焦点时变白色,请问怎么写比较简单,谢谢

解决方案 »

  1.   

    没有必要写成组件,用OnEnter和OnExit就能实现.
      

  2.   

    procedure TForm1.Edit1Enter(Sender: TObject);
    begin
      edit1.Color := clRed;
    end;procedure TForm1.Edit1Exit(Sender: TObject);
    begin
      edit1.Color := clWhite;
    end;
      

  3.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);  private
        { Private declarations }
      public
        { Public declarations }
      end;  TExEdit = class(TEdit)
      private
      public
        procedure WndProc(var message: TMessage); override;
      end;
    var
      Form1: TForm1;implementation{$R *.DFM}{ TExEdit }procedure TExEdit.WndProc(var message: TMessage);
    begin
      case Message.Msg of
        WM_SETFOCUS:
          Self.Color:=clred;
        WM_KILLFOCUS:
          Self.Color:=clWhite;
      end;
      inherited WndProc(message);end;procedure TForm1.Button1Click(Sender: TObject);
    var e:TExEdit;
    begin
      e:=TExEdit.Create(self);
      e.Parent:=self;
    end;end.在窗体上加个Button1再把代码拷贝进去就ok拉
      

  4.   

    unit EditEx;interfaceuses
      SysUtils, Classes, Controls, StdCtrls, Graphics;type
      TEditEx = class(TEdit)
      private
        { Private declarations }
        procedure Enter(Sender: TObject);
        procedure Exit(Sender: TObject);
      protected
        { Protected declarations }
      public
        { Public declarations }
        constructor Create(AOwner: TComponent); override;
      published
        { Published declarations }
      end;procedure Register;implementationprocedure Register;
    begin
      RegisterComponents('loveking', [TEditEx]);
    end;procedure TEditEx.Enter(Sender: TObject);
    begin
        self.Color:=clBlue;
    end;procedure TEditEx.Exit(Sender: TObject);
    begin
        self.Color:=clWhite;
    end;constructor TEditEx.Create(AOwner: TComponent);
    begin
        self.OnEnter:=Enter;
        self.OnExit:=Exit;
    end;end.
    //----------------组件形式的-----------------------------------