在Delphi 2009中,我发现在调整窗体大小时,可以通过将PageControl的DoubleBuffered属性设置为true来减少闪烁。但是,如果我向PageControl的选项卡页添加控件,则无论它们的DoubleBuffered属性设置如何,它们都会闪烁。我已经尝试启用和禁用运行时主题,仍然无法解决问题。
ParentBackground
为False
有很大的帮助。然而,这导致这些面板组件的颜色不同,它们现在都有一个较暗的背景。也许可以轻松解决这个问题(而不失去主题支持)。这远非完美,但你可能想使用它:
protected
procedure WMExitSize(var Message: TMessage); message WM_EXITSIZEMOVE;
procedure WMEnterSize(var Message: TMessage); message WM_ENTERSIZEMOVE;
procedure TFormMain.WMEnterSize(var Message: TMessage);
begin
if Assigned(PageControlView.ActivePage) then
PageControlView.Align := alNone;
end;
procedure TFormMain.WMExitSize(var Message: TMessage);
begin
if Assigned(PageControlView.ActivePage) then
PageControlView.Align := alClient;
end;
这是我迄今为止找到的最好的,可以减少页面控件的Windows更新。虽然可能不太好看,但这只是一个观点问题...
alRight
和alBottom
中的一个?) - Andreas Rejbrand