Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2009年05月24日] [更新 2013年12月12日] エクセル操作フォームEx
エクセル操作フォームEx   参考コード類
ちらつき防止
動作確認等 Windows 7 U64(SP1) + Delphi XE Pro + Excel 2010







画面更新時のちらつき防止方法


描画の際にはほとんどの場合,実行中に画面がちらつきます.これを防止するには以下のリストのように画面更新の停止,開始コードを描画コードの前後に入れてみて下さい.あるいは,これらのコードを組み合わせると効果がある場合があります.

ちらつきの原因というか,元は,何を描画するかにもよるよようです.Windows 7 + Excel 2010 では,従来よりもちらつきが少なくなっている気がします.エクセル自身,あるいは,Windows 内部でも描画関係の改善がなされているようです.


リスト1
エクセル操作フォームExのハンドルで LockWindowUpdate を使用
procedure TplExcelFormEx2.Button1Click(Sender: TObject);
begin
  LockWindowUpdate(Handle);

  //実行コード

  LockWindowUpdate(0);
end;


リスト2
エクセルを表示しているパネルのハンドルで LockWindowUpdate を使用
procedure TplExcelFormEx2.Button4Click(Sender: TObject);
begin
  LockWindowUpdate(PanelLeft.Handle);

  //実行コード

  LockWindowUpdate(0);
end;


リスト3
エクセルVBAのプロパティ ScreenUpdating を使用
procedure TplExcelFormEx2.Button2Click(Sender: TObject);
begin
  xlfExcelApp.ScreenUpdating[0] := False;

  //実行コード

  xlfExcelApp.ScreenUpdating[0] := True;
end;