如何使窗体的所有Edit控件获得焦点时,Edit控件的属性Color为Blue?

解决方案 »

  1.   

    先写一个Edit组件的OnEnter事件
    例:
    (Sender as TEdit).Color:=clYellow;
    OnExit事件
    (sender as TEdit).color:=clWhite;
    然后设置所有的Edit控件的OnEnter和OnExit事件为上面的这两个事件。
    我想这样就行了吧。
      

  2.   

    procedure TForm1.Edit1Enter(Sender: TObject);
    begin
      TEdit(Sender).Color := clBlue;
    end;procedure TForm1.Edit1Exit(Sender: TObject);
    begin
      TEdit(Sender).Color := clWindow;
    end;procedure TForm1.FormCreate(Sender: TObject);
    var
      I: Integer;
    begin
      for I := 0 to ControlCount-1 do
      if Controls[I].InheritsFrom(TEdit) then
      with TEdit(Controls[I]) do
      begin
        OnEnter := Edit1.OnEnter;
        OnExit := Edit1.OnExit;
      end;
    end;————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  3.   

    lxpbuaa(桂枝香在故国晚秋) :
    如果我在ONENTER,ONEXIT上有其他的代码,这些代码会一同执行。如何能够更加优化啊?
      

  4.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Edit1: TEdit;
        Edit2: TEdit;
        Edit3: TEdit;
        Button1: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Edit1Enter(Sender: TObject);
        procedure Edit2Enter(Sender: TObject);
      private
        PreEnter, PreExit: Array of TNotifyEvent;
      public
        { Public declarations }
      published
        procedure EditEnter(Sender: TObject);
        procedure EditExit(Sender: TObject);
      end;var
      Form1: TForm1;implementation{$R *.dfm}{ TForm1 }procedure TForm1.EditEnter(Sender: TObject);
    begin
      with TEdit(Sender) do
      begin
        Color := clBlue;
        if Assigned(PreEnter[ComponentIndex]) then
          PreEnter[ComponentIndex](Sender);
      end;
    end;procedure TForm1.EditExit(Sender: TObject);
    begin
      with TEdit(Sender) do
      begin
        Color := clWindow;
        if Assigned(PreExit[ComponentIndex]) then
          PreExit[ComponentIndex](Sender);
      end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    var
      I: Integer;
    begin
      SetLength(PreEnter, ComponentCount);
      SetLength(PreExit, ComponentCount);
      for I := 0 to ComponentCount-1 do
      if Components[I].InheritsFrom(TEdit) then
      with TEdit(Components[I]) do
      begin
        PreEnter[I] := OnEnter;
        OnEnter := EditEnter;
        PreExit[I] := OnExit;
        OnExit := EditExit;
      end;
    end;procedure TForm1.Edit1Enter(Sender: TObject);
    begin
      ShowMessage('Edit1Enter');
    end;procedure TForm1.Edit2Enter(Sender: TObject);
    begin
      ShowMessage('Edit2Enter');
    end;end.————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————