TLabel 未与 TPanel 重叠更新

TLabel is not updated overlapped with TPanel

我的环境:

VCL application developped on RadStudio XE4 on Windows 7 pro (32bit).
tested on Windows 7 pro (32bit).

我发现使用 RadStudio XE4 制作的软件有一些奇怪的行为。 放置在 TPanel 上的 TLabel 字符串未正确更新。

最简单的例子如图所示。在此软件中,TLabel 显示每秒的当前时间。如图,下半部分(在TPanel上)是不会更新的,除非我把其他软件的window重叠在TPanel组件上。

这是 RadStudio 的正常行为吗?或者 RadStudio 中的一些错误?

如果有一些解决方法,我想知道。

TLabelTGraphicControl 的后代。 TPanelTWinControl 的后代。 TGraphicControl 在其 Parent window 的 HDC 上呈现,而不是在同一 Parent 的其他子控件上呈现。当 TLabel 更新时,它会触发 Parent 的重绘,但不会触发 TPanel 的重绘。要强制重新绘制,请在对 TLabel.

进行更改时调用 TPanelUpdate()Invalidate() 方法