例: CreateTimer method

次の例は、ユーザーがタイマーを使用不可にしていないかぎり、文書が開かれてからの経過時間を保持して報告します。この例はいくつかのスクリプトで構成されます。

  1. 次の宣言は、フォームの (Globals) (Declarations) にあります。変数「elapsedTime」はフォームのさまざまなオブジェクトで使用されます。フォームの多くのスクリプトの実行中には、NotesTimer オブジェクトの elapsedTimer は有効でなければなりません。
    Dim elapsedTime As Integer
    Dim elapsedTimer As NotesTimer
    %INCLUDE "lsconst.lss"
  2. このフォームを基にする文書が開かれると、NotesTimer オブジェクトが作成され、間隔は 1 秒に設定されます。オブジェクトの Alarm イベント用のイベントハンドラが確立されます。
    Sub Postopen(Source As Notesuidocument)
      Dim session As New NotesSession
      Set elapsedTimer = session.CreateTimer()
      elapsedTimer.Interval = 1
      elapsedTimer.Comment = _
      "Elapsed time since opening document"
      elapsedTime = 0
      On Event Alarm From elapsedTimer _
      Call elapsedTimerHandler
    End Sub
  3. 次のユーザーサブルーチンは、上記の On Event ステートメントで指定されたイベントハンドラです。これは単純に、呼び出されるたびにグローバル変数に 1 だけ増分します。
    Sub elapsedTimerHandler(Source As NotesTimer)
      elapsedTime = elapsedTime + 1
    End Sub
  4. 次のスクリプトは、フォーム上のボタン用です。グローバル変数に累積された時間を表示します。
    Sub Click(Source As Button)
      Dim etime As Integer
      Dim minutes As Integer
      etime = elapsedTime
      If etime < 60 Then
        Messagebox etime & " second(s)",, _
        "Elapsed time since opening document"
      Else
        minutes = 0
        Do While etime > 59
          minutes = minutes + 1
          etime = etime - 60
        Loop
        Messagebox minutes & " minute(s), " & _
        etime & " second(s)",, _
        "Elapsed time since opening document"
      End If
    End Sub
  5. 次の例は、NotesTimer オブジェクトの Enabled プロパティを問い合わせ、ユーザーが希望すればそれを切り替えます。
Sub Click(Source As Button)
  If elapsedTimer.Enabled Then
    If Messagebox _
    ("Do you want to disable the timer?", _
    MB_YESNO + MB_ICONQUESTION, _
    "Elapsed timer is enabled") = IDYES Then
      elapsedTimer.Enabled = False
    End If
  Else
    If Messagebox _
    ("Do you want to enable the timer?", _
    MB_YESNO + MB_ICONQUESTION, _
    "Elapsed timer is disabled") = IDYES Then
      elapsedTimer.Enabled = True
    End If
  End If
End Sub