GUI機能拡張

Q
マウスポインタの表示変更
[内容]
時間がかかる処理の際に、マウスポインタを砂時計に変えたい

A
[解決方法]
XE(Ver4.1)よりSetCursorメソッド、ResetCursorメソッドをご利用頂くことでマウスポインタの
変更が可能です。
このメソッドを利用して、「サーバ側での処理中はマウスポインタを変更する」「ボタンの上に
マウスを合わせた場合にマウスポインタを変更する」などの機能が実装可能です。

この機能は、DisplayObjectクラスの派生クラスで利用可能です。
また、Active=$TRUEのオブジェクトに有効です。Active=$FALSEのオブジェクトにマウスを
合わせても変更は反映されません。

実装の際は、下記の内容にご留意ください。

・  Dialogオブジェクト表示時は、呼出元のFormオブジェクトのマウスポインタの変更は反映されません。
・  PulldownListオブジェクトのマウスポインタを変更した場合、リストを展開した状態で
他のオブジェクト上にマウスを移動させても、リストを選択するか他のオブジェクトに
フォーカスが移るまでマウスポインタは元の形状に戻りません。

Biz/Browser Ver4.0以前のバージョンでは、マウスポインタの表示に対応したメソッドは
用意しておりません。
通信/ローカルファイルアクセス/印刷など、Biz/Browserの動作状況につきましては、
インジケータ(画面左下)で表示していますので、こちらをご参照ください。


[サンプルコード]

Form Form1 {
    X = 0;
    Y = 0;
    Width = 400;
    Height = 300;
    Button Button1 {
        X = 5;
        Y = 5;
        Width = 190;
        Height = 35;
        Title = "サーバ処理中は\r\nマウスポインタが変化";

        Function OnTouch( e ) {
            //.SetCursor("./server_process.cur");

            /* サーバ処理を実行 */

            //.ResetCursor();
        }
    }
    Button Button2 {
        X = 5;
        Y = 50;
        Width = 190;
        Height = 35;
        Title = "マウスをボタンの上に合わせると\r\nマウスポインタが変化";
    }

    if ( !$DESIGNTIME ) {
        /* Button2にマウスを合わせると
            マウスポインタの形状が変化 */
        this.Button2.SetCursor("./button.cur");
    }
}
管理番号:Gui41_007
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser XE・Biz/Designer XE TIPS集 トップへ