Delphi中给活动控件画上矩形边框

  {private
    procedure DrawFocusRectangle(sender: TObject);
  public
    { Public declarations }
  end;}

var
  Form1: TForm1;
  FocusRectangle: TShape;

implementation

{$R *.dfm}

//窗体创建事件中加如下代码
procedure TForm1.FormCreate(Sender: TObject); begin FocusRectangle := TShape.Create(Self); FocusRectangle.Shape := stRectangle; FocusRectangle.Visible := False; FocusRectangle.Brush.Style := bsClear; FocusRectangle.Pen.Style := psDot; FocusRectangle.Pen.Color := clRed; FocusRectangle.Pen.Width := 1; {在Screen的OnActiveControlChange事件中处理}
Screen.OnActiveControlChange := DrawFocusRectangle; end; procedure TForm1.DrawFocusRectangle; begin with FocusRectangle do begin Parent := Screen.ActiveControl.Parent; Top := Screen.ActiveControl.Top -2 ; Height := Screen.ActiveControl.Height + 4; Left := Screen.ActiveControl.Left - 2; Width := Screen.ActiveControl.Width + 4; Visible := True; end; end; procedure TForm1.FormDestroy(Sender: TObject); begin Screen.OnActiveControlChange := nil; FocusRectangle.Free; end;