Delphi 2009で、フォームのサイズ変更中に発生するPageControlのちらつきは、そのDoubleBuffered
プロパティをtrueに設定することで減らすことができることを発見しました。
ただし、PageControlタブシートにコントロールを追加すると、DoubleBufferedプロパティの設定に関係なくちらつきます。また、ランタイムテーマを有効にした場合と無効にした場合も試してみました。
Delphi 2009で、フォームのサイズ変更中に発生するPageControlのちらつきは、そのDoubleBuffered
プロパティをtrueに設定することで減らすことができることを発見しました。
ただし、PageControlタブシートにコントロールを追加すると、DoubleBufferedプロパティの設定に関係なくちらつきます。また、ランタイムテーマを有効にした場合と無効にした場合も試してみました。
PageControlのコンポーネントをに設定ParentBackground
すると、非常に役立ちました。False
ただし、これにより、これらのパネルコンポーネントの色が異なり、すべての背景が暗くなります。たぶん、これは簡単に修正できます(テーマのサポートを失うことなく)。
また、 QC 56252の修正が含まれているVCLフィックスパックもインストールしました(TPageControlは、アクティブなテーマで頻繁にちらつきます)。
これは完璧にはほど遠いですが、これを使用することをお勧めします。
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;
これは私がこれまでに見つけた最高のものであり、ページコントロールのWindowsUpdateを削減します。あまりきれいではないかもしれませんが、それは意見の問題です...