Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2009年05月12日] [更新 2009年05月12日] ワード操作フォームEx
ワード操作フォームEx   参考コード類
ちらつき防止
動作確認等 -







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


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

より新しいバージョンのワードは描画関係の改善があったようです.以下のような処理コードを追加すると,逆にチラツクこともあります.


リスト1 
//=============================================================================
//  ワードはPenleLeftというTPanel上に表示している
//  このPanelの更新を停止する方法
//=============================================================================
procedure TplWordFormEx2.Button1Click(Sender: TObject);
begin
  LockWindowUpdate(PanelLeft.Handle);

  //操作コード
  TestDraw;

  LockWindowUpdate(0);
end;


リスト2 
//=============================================================================
//  ワードのハンドルwdfWordHandleを使用
//=============================================================================
procedure TplWordFormEx2.Button2Click(Sender: TObject);
begin
    LockWindowUpdate(wdfWordHandle);

    //操作コード
    TestDraw;

    LockWindowUpdate(0);
end;


リスト3 
//=============================================================================
//  ScreenRefreshを使用
//  ScreenRefreshは画面を更新してから停止
//=============================================================================
procedure TplWordFormEx2.Button3Click(Sender: TObject);
begin
  wdfWordApp.ScreenRefresh;

  //操作コード
  TestDraw;

  wdfWordApp.ScreenUpdating := True;
end;


リスト4 
//=============================================================================
//  ScreenUpdating := Falseはただちに画面更新を停止する
//=============================================================================
procedure TplWordFormEx2.Button4Click(Sender: TObject);
begin
  wdfWordApp.ScreenUpdating := False;

  //操作コード
  TestDraw;

  wdfWordApp.ScreenUpdating := True;
end;