[
|../../index.htm#lansa/l4wdev06_0335.htm]
現在地:
ユーザーにフォームを終了するかどうかを確認するオプションが必要な場合は、CloseFormQueryメソッドとCloseQueryイベントを使用します。
例には、メイン・フォームとフォームが閉じられるときに表示されるダイアログがあります。メイン・フォームには、OKとキャンセルの2つのボタンがあります。
![]()
キャンセルボタンは、CloseFormQueryメソッドを使用してフォームを閉じます。
Invoke #Com_Owner.CloseFormQuery
ボタンのほかに、フォームにはダイアログ・フォームがあります。
ダイアログ・フォームには、3つのボタンがあります。
![]()
3つのボタンすべてにフォームを閉じるClickイベント・ルーチンがあります。
EVTROUTINE HANDLING(#BTN_CLOSE.Click)
Invoke #Com_Owner.CloseForm ENDROUTINE EVTROUTINE HANDLING(#BTN_CANCEL.Click) Invoke #Com_Owner.CloseForm ENDROUTINE EVTROUTINE HANDLING(#BTN_MIN.Click) Invoke #Com_Owner.CloseForm ENDROUTINE
その他に、それぞれのModalResult値があり、以下のように値が設定されます。
|
#BTN_CLOSE |
Cancel |
|
#BTN_CANCEL |
No |
|
#BTN_MIN |
OK |
キャンセルボタンのイベント・ルーチンのほかに、メイン・フォームにはCloseQueryイベントのイベント・ルーチンがあります。このイベントでは、ダイアログ・フォームを起動し、ダイアログ・フォームを閉じるときにModalResultを受け取ります。それから返されたModalResultの値を調べ、それにしたがってアクションを実行します。
フォームの終了を続行するかどうかは、Continueパラメータで使用される#Optionフィールドの値で決定します。
EvtRoutine Handling(#Com_Owner.CloseQuery) Continue(#Option)
Invoke #Dialog.ShowModalForm Define #QResult Reffld(#Std_Texts) Change #QResult #Dialog.modalResult Case #QResult When '= No' Invoke #Com_Owner.RestoreForm Set #Option Value(FALSE) When '= OK' Invoke #Com_Owner.MinimizeForm Set #Option Value(FALSE) OtherWise Set #Option Value(TRUE) EndCase EndRoutine
caseステートメントでは、ダイアログ・フォームから返されるModalResult値がNo(キャンセルボタンに割り当てられる)の場合にメイン・フォームを元の大きさに戻し、返された値がOK(最小化ボタンに割り当てられる)の場合は、メイン・フォームを最小化します。どちらの場合も、ContinueパラメータはFalseに設定されます。これ以外のModalResult値が返された場合は、フォームは閉じられます。
![]()
[
|../../index.htm#lansa/l4wdev06_0335.htm]