{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;
请发表评论