- 次の宣言は、フォームの (Globals) (Declarations) にあります。変数「elapsedTime」はフォームのさまざまなオブジェクトで使用されます。フォームの多くのスクリプトの実行中には、NotesTimer オブジェクトの elapsedTimer は有効でなければなりません。
Dim elapsedTime As Integer
Dim elapsedTimer As NotesTimer
%INCLUDE "lsconst.lss"
- このフォームを基にする文書が開かれると、NotesTimer オブジェクトが作成され、間隔は 1 秒に設定されます。オブジェクトの Alarm イベント用のイベントハンドラが確立されます。
Sub Postopen(Source As Notesuidocument)
Set elapsedTimer = New NotesTimer(1, _
"Elapsed time since opening document")
elapsedTime = 0
On Event Alarm From elapsedTimer _
Call elapsedTimerHandler
End Sub
- 次のユーザーコードは、上記の On Event ステートメントで指定されたイベントハンドラです。これは単純に、呼び出されるたびにグローバル変数に 1 だけ増分します。
Sub elapsedTimerHandler(Source As NotesTimer)
elapsedTime = elapsedTime + 1
End Sub
- 次のスクリプトは、フォーム上のボタン用です。グローバル変数に累積された時間を表示します。
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
- 次のスクリプトは、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