MESSAGE

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 2004 (Modified)


MESSAGE (message)

引数説明
message文字列表示するメッセージ

説明

MESSAGE コマンドは、通常ユーザに対して何らかの動作を知らせるために使用します。このコマンドは画面上の特別なメッセージウィンドウにmessageを表示します。このメッセージウィンドウは、Open window(後述)を使ってあらかじめ開かれたウィンドウを使用していないかぎり、MESSAGEコマンドをコールするたびに表示されたり閉じられたりします。このメッセージは一時的なもので、フォームを表示する、またはメソッドの実行が終了するとすぐに消去されます。別のMESSAGEコマンドを実行すると古いメッセージは、消去されます。

Open windowでウィンドウを開いている場合、続くMESSAGEコマンドの呼び出しはすべてそのウィンドウにメッセージを表示します。ウィンドウはターミナルのようなに振舞います:

・ 一連のメッセージがこのウィンドウで表示されると、前のメッセージを消去しません。その代わりに、新しいメッセージは既存のメッセージに続けて表示されます。

・ メッセージがウィンドウの幅よりも長い場合、4Dは自動的に改行を行います。

・メッセージの行がウィンドウの高さより高い場合、4Dは自動的にメッセージウィンドウをスクロールします。

・行の制御を行うには、メッセージ中にキャリッジリターン (Char(13) または "\r") を挿入します。

・ウィンドウの特定の位置にメッセージを表示するには、GOTO XYコマンドを使用します。

・ウィンドウの内容を消去するには、ERASE WINDOWコマンドを使用します。

・このウィンドウは単なる出力用ウィンドウであり、別のウィンドウがオーバーラップしても再描画されません。

例題

1. 以下の例は、レコードセレクションを処理し、MESSAGEコマンドをコールしてユーザに処理の進捗状況を知らせます:

   For($vlRecord;1;Records in selection([anyTable]))
      MESSAGE ("Processing record #"+String($vlRecord))
         ` Do Something with the record
      NEXT RECORD([anyTable])
   End for

MESSAGEをコールするたびに、以下のウィンドウが表示されては消えます:

2. ウィンドウのちらつきを避けるため、以下の例題のようにOpen windowで開いたウィンドウにメッセージを表示することができます:

   Open window(50;50;500;250;5;"Operation in Progress")
   For($vlRecord;1;Records in selection([anyTable]))
      MESSAGE ("Processing record #"+String($vlRecord))
         ` Do Something with the record
      NEXT RECORD([anyTable])
   End for
   CLOSE WINDOW

結果は以下の通り:

3. 改行を追加し、見やすくします:

   Open window(50;50;500;250;5;"Operation in Progress")
   For($vlRecord;1;Records in selection([anyTable]))
      MESSAGE ("Processing record #"+String($vlRecord)+Char(Carriage return))
         ` Do Something with the record
      NEXT RECORD([anyTable])
   End for
   CLOSE WINDOW

結果は以下の通り:

4. GOTO XYコマンドを使用し、何行か追加します:

   Open window(50;50;500;250;5;"Operation in Progress")
   $vlNbRecords:=Records in selection([anyTable])
   $vhStartTime:=Current time
   For($vlRecord;1;$vlNbRecords)
      GOTO XY(5;2)
      MESSAGE ("Processing record #"+String($vlRecord)+Char(Carriage return))
         ` Do Something with the record
      NEXT RECORD([anyTable])
      GOTO XY(5;5)
      $vlRemaining:=(($vlNbRecords/$vlRecord)-1)*(Current time-$vhStartTime)
      MESSAGE ("Estimated remaining 時間: "+Time string($vlRemaining))
   End for
   CLOSE WINDOW

結果は以下の通り:

参照

CLOSE WINDOW, ERASE WINDOW, GOTO XY, Open window.


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次