Alarm (クラス)
public final Alarm
パッケージ: CURL.RUNTIME.EVENT

低レベルのワンショット タイマーに関する情報。

ユーザーが長方形をクリックして 3 秒後にメッセージを表示するには、次のようにすることができます。


{RectangleGraphic
    width = 1in,
    height = 0.5in,
    color = "green",
    {on e:PointerPress do
        {if e.button == 1 then
            {after 3s do
                {popup-message "Alarm fired!"}
            }
        }
    }
}

前の例では、after マクロを使用しています。このマクロにより、次の少し複雑な例に展開されます。


{RectangleGraphic
    width = 1in,
    height = 0.5in,
    color = "green",
    {on e:PointerPress do
        {if e.button == 1 then
            {Alarm
                delay = 3s,
                {proc {}:void
                    {popup-message "Alarm fired!"}
                }
            }
        }
    }
}

コンストラクタ
default:新しい Alarm を初期化します。
コンストラクタ public {Alarm.default
alarm-proc:{proc-type {}:void},
when:#DateTimeData = null,
delay:Time = -1s
}

プロパティ
alarm-proc:Alarm が発生したときに呼び出すプロシージャ。
フィールド public constant Alarm.alarm-proc:{proc-type {}:void}
scheduled?:Alarm が現在スケジュールされている場合は true。
アクセサ public final Alarm.scheduled?:bool
suspended?:
フィールド deprecated public constant Alarm.suspended?:bool =false

メソッド
cancel:現在スケジュールされている場合、Alarm をキャンセルします。
public {Alarm.cancel}:void
schedule:今後の実行に備えて Alarm をスケジュールします。
public {Alarm.schedule
when:#DateTimeData = null,
delay:Time = -1s
}:void
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
public {Alarm.default
alarm-proc:{proc-type {}:void},
when:#DateTimeData = null,
delay:Time = -1s
}

新しい Alarm を初期化します。

alarm-proc: Alarm に関連付けられているアラーム プロシージャ。
when: 非 NULL の場合に、Alarm が発生する時期。
delay: 負でない場合に、現在を基準に、Alarm が発生する時期。

注意事項

when が非 NULL の場合、または delay が負でない場合、Alarm はこうした値および Alarm.schedule メソッドを使用して、作成後にスケジュールされます。



プロパティ詳細
alarm-proc (フィールド)
public constant Alarm.alarm-proc:{proc-type {}:void}

Alarm が発生したときに呼び出すプロシージャ。



scheduled? (アクセサ)
アクセサ public final Alarm.scheduled?:bool

Alarm が現在スケジュールされている場合は true。



suspended? (フィールド)
deprecated public constant Alarm.suspended?:bool =false

非推奨

このフィールドは使用しないでください。





メソッド詳細
cancel (メソッド)
public {Alarm.cancel}:void

現在スケジュールされている場合、Alarm をキャンセルします。



schedule (メソッド)
public {Alarm.schedule
when:#DateTimeData = null,
delay:Time = -1s
}:void

今後の実行に備えて Alarm をスケジュールします。

when: 非 NULL の場合に、Alarm が発生する時期。
delay: 負でない場合、現在を基準に、Alarm が発生する時期。0s にすれば、できるだけ早く発生します。

注意事項

when が非 NULL の場合、その値は Alarm が発生する時期として使用されますが、 delay が負でない場合、その値は Alarm が発生する前の経過時間として使用されます。それ以外の場合は、エラーがスローされます。delay が 0s の場合や when が過去になっている場合でも、dispatch-events が次に呼び出されるまで、Alarm は発生しません。

注意事項

現在スケジュールされている Alarm (つまり、スケジュールされており、まだ発生していない、あるいはキャンセルされていない Alarm) をスケジュールすることはできません。必要であれば、そのような Alarm をキャンセルして、再スケジュールできます。