[サポートFAQ]
ライン
更新日:1998.02.06 - 情報番号:007081
ライン
Q マクロ実行中に画面が表示されるまで待つ
ライン
A FAQ改善アンケートにご協力ください
マクロ実行中に画面が表示されるまで待つには、Dispelメソッドを使用し、ウィンドウメッセージがキューからなくなるまで待ちます。

次のマクロを実行すると,コマンドボタンのキャプションに数字がカウントアップしている過程が表示されます。

  ■ 操作手順 ■



    1.フォームにコマンドボタンコントロールを貼り付けます。

    2.次のマクロを記述します。




    !! Mainマクロ

    Dialogs.DoModal("Form1",,,,,,0)   !! (1)

     

    !! フォームに貼り付けたコマンドボタンのClickイベント

    event Click()

      for %i = 1 to 10000

        self.Caption = %i

        Application.WorkPlace.Dispel()   !! (2)

      next

    end event

 

    (1)Dialogs.DoModal("Form1",,,,,,0)

      フォーム"Form1"をモーダルダイアログとしてオープンします。

    (2)Application.WorkPlace.Dispel()

      Dispelメソッドはウィンドウメッセージがキューからなくなるまで待つというメソッドです。Displeでマクロの実行が止まっている間にキャプションの再描画が行われるため,カウントアップしている過程が画面に表示されます。

      Application.WorkPlace.Dispelを記述しないと,カウントアップしている途中は表示されず,しばらくしたあと10000だけが表示されます。

      ●Dispelメソッド

        Dispel ( <Type> )

        ウィンドウメッセージがキューからなくなるまで待ちます。

        Type 処理するウィンドウメッセージの種類を数値で指定。

           1 WM_PAINTメッセージだけを処理

           2 すべてのウィンドウメッセージを処理

           (省略時:1)

        ※Dispelの引数Typeに、1を指定した場合は、ウィンドウの一部の描画の処理(変更された部分の再描画)を行います。2を指定した場合は、一時的にWindowsに制御を渡します。つまりこのマクロで2を指定した場合、コマンドボタンをクリックし、カウントアップされている最中でも再度クリックを行えます。クリック後、0からカウントしなおします。(Microsoft VisualBasicのDoEvents 関数に該当します。)
        ※WM_PAINT メッセージに関しては、Microsoft の Win32 API についてのマニュアルを参照してください。
        ※Application.CaptionはDispelメソッドを実行しなくても再描画が行われますが,Application.StatusBar.CaptionはDispelメソッドを実行しないと再描画が行われません。

ライン

この情報は、お客様のお役に立ちましたか?

送信
ライン
※本情報の内容は、予告なく変更することがあります。
※本情報の一部または全部を無断で転載及び複写することを禁止します。
※記載された会社名、製品名は、弊社または各社の登録商標もしくは商標です。
弊社の登録商標についてはこちらをご参照ください。