WideStudio Application Builder User's Guide(Ocaml言語)

オブジェクトの描画制御を行うには

オブジェクトの描画制御を行うには、次のようなメンバ関数を利用します。

描画制御メンバ関数 機能
setAbsoluteDraw(bool) 強制描画フラグを立てる
draw() 通常描画
redraw() 一度クリアして描画
cdraw() 子も含めて再描画
clear() クリア
update() プロパティ変更後であれば redraw() する



オブジェクトの描画更新を行うには

通常のプロパティ更新は、イベントプロシージャ実行直後に 更新されますが、ユーザが強制的に描画更新を行うこともできます。

let event_procedure obj =
  (* プロパティの変更 *)
  obj -> setProperty ("labelString", "設定動作");
  (* 更新 *)
  obj -> update();
  ()
let _ = Callback.register "event_procedure" event_procedure

"update"() 関数は、プロパティが変更されて更新が必要な場合のみ更新処理を行います。

オブジェクトを再描画させるには

オブジェクトに再描画させるには、次のようなケースがあります。 それぞれのケースにおいて再描画方法を示します。


  • クリア描画(イベント発生あり)

    通常の再描画ならば、一度クリアして描画させる redraw() を使います。 redraw() はクリアして、EXPOSE イベントを発生させます。もし、他の オブジェクトで重なっているものがあれば、そのオブジェクトも再描画 されます。redraw() はイベントを発生させる関係上、多量のオブジェク トが存在するアプリケーションウィンドウでは、パフォーマンスが悪い 場合があります。

         obj -> redraw();
    



  • 描画(上書き)

    EXPOSE イベントを発生させずに強制的に描画(上書き)させる場合は、強 制描画フラグをたてて draw()を使います。draw() は、再描画の必要の ない場合、実行されないので、強制的に描画を行いたい場合は次のよう に行います。

         obj -> setAbsoluteDraw(_True);
         obj -> draw();
    



  • 単純描画(上書き)

    EXPOSE イベントを発生させずに単に描画させる場合は、"draw"() を使い ます。強制描画フラグが立っていない場合は、EXPOSE イベントが発生し た EXPOSE 領域のみ描画します。"draw"() は、再描画の必要のない場合、 実行されないのでパフォーマンスの向上が図れます。

         obj -> draw();
    



  • クリア描画(イベント発生なし)

    EXPOSE イベントを発生させずに一度クリアして描画させる場合は、 "clear"() と "draw"() を使います。もし、他のオブジェクトで重なってい るものがあれば、重なっている部分は欠けてしまうので、そのような場 合は、クリア描画(イベント発生あり)を行ってください。

         obj -> clear();
         obj -> setAbsoluteDraw(_True);
         obj -> draw()  
    


Document Release 3.80 for WideStudio ver 3.80, Jan 2005


WideStudio documents index | 目次
バグ情報、ご質問等ございましたら、メーリングリストでご確認の上、 御気軽にこちらの方までよろしくお願いいたします。