プロセスイベント文のユーザ入力をブロックせず プロセスのすべての未処理のイベントを。あなたはSTOPを選択するまで
例
構文
プロセスイベントは、この手順は、1,000カウント:各オン
R-proevs.p
DEFINE VARIABLE ix AS INTEGER NO-UNDO.
DEFINE VARIABLE stop-sel AS LOGICAL NO-UNDO.
DEFINE BUTTON stop-it LABEL "STOP".
DISPLAY stop-it.
ON CHOOSE OF stop-it
stop-sel = TRUE.
ENABLE stop-it.
DO ix = 1 TO 1000:
DISPLAY ix VIEW-AS TEXT.
PROCESS EVENTS.
IF stop-sel THEN LEAVE.
END.
は、ループを通過し、プロシージャーはixの新しい値を表示し、処理待ちのイベントがないかどうかを確認します。イベントが発生していない場合は、実行が続行され、ループが反復処理されます。 STOPボタンが選択されている場合、そのイベントは処理され、stop-selの値が変更されます。実行が続行されると、プログラムはループを終了します。
ループにPROCESS EVENTSステートメントが含まれていない場合、chooseイベントは処理されず、ループはixが1,000に等しくなるまで繰り返します。
注 WAIT-FORステートメントは、すべての保留中のイベントを処理し、指定されたイベントが発生するまで、他のすべての実行をブロックします。 PROCESS EVENTSステートメントは、保留中のすべてのイベントを処理し、直ちに次のステートメントで実行を継続します。 PROCEDURE-COMPLETEイベントが受信されたがまだ処理されていない非同期要求がある場合、このステートメントはWAIT-FORステートメントで説明したようにこれらのイベントを処理します。 ABLで.NETメソッドsystem.Windows.Forms.Application:DoEvent()を呼び出すことはできません。 PROCESS EVENTSステートメントは、このメソッドの機能を実行します。 .NETは、このステートメントが実行されるときにABLセッションのコンテキストで例外を発生させることがあります。
あなたのWAIT-FORはどこですか? –
あなたは正確に何を達成しようとしていますか? –