首先,VCL 的 TPageControl 是没有切入切出动画的,所以,这里要做的是给 VCL 的 TPageControl 做动画支持。当然,虽然咱们说的是 QAnimation 教程,但关注的重点不是 QAnimation,而是如何给 TPageControl 添加动画效果,QAnimation 只是一个动画控制器
标签:PageControl
[技巧] 让一个后台 TTabSheet 上的控件切换到前台并获得焦点
实际上,这个函数并不只能完成上面的功能,它是让一个控件获得焦点,当它在后台的 TTabSheet 页面上时,会将所在的 TabSheet 设置为活动页面,然后再切换获得焦点。当然,如果它本身不能获得焦点,那么,会让其父获得焦点,依次类推。 代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
function ForceFocus(ACtrl: TWinControl): Boolean; var AParent: TWinControl; begin AParent := ACtrl.Parent; if Assigned(AParent) then begin if AParent is TTabSheet then begin (AParent as TTabSheet).PageControl.ActivePage := AParent as TTabSheet; Result := ForceFocus(AParent); end else Result := ForceFocus(AParent); end else Result:=True; if Result then begin Result := ACtrl.CanFocus; if Result then ACtrl.SetFocus; end; end; |
调