{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;