You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

[ |../../index.htm#lansa/l4wdev06_0835.htm]
現在地:

2.8.7.1 サンプルのモーダル・フォーム

この例では、フォームをモーダルで呼び出し、呼び出し側のフォームにモーダル・フォームの押されたボタンを通知する方法を説明します。
モーダルで呼び出されるサンプル・フォームには、ボタン1とボタン2の2つのボタンがあります。

ボタン1のModalResult値は、Yesに設定され、ボタン2のModalResult値はNoに設定されます。
どちらかのボタンがクリックされると、ModalResultはフォームを閉じるNone以外の値に設定されるので、2つのボタンのイベント・ルーチンはフォームには含まれません。
他のフォームを呼び出すフォームには、他のフォームを呼び出すためのボタンがあります。呼び出されたフォームを閉じるためにクリックされたボタンを示す2つのラジオ・ボタンがあります。

フォームは、このフォーム内で呼び出されます。このためには、モーダル・フォームを、呼び出すフォームにドラッグ・アンド・ドロップします。
呼び出すフォームのモーダル・フォーム実行ボタンのClickイベントには、呼び出されたフォームから返されたModalResult値に従ってラジオ・ボタンを設定するロジックが含まれます。呼び出されたフォームが閉じられると、ModalResult値が返されます。
EVTROUTINE HANDLING(#PHBN_1.Click)
*Invoke #MForm modally    invoke #MForm.ShowModalForm *Test the returned ModalResult    IF COND('#Mform.ModalResult *eq Yes')       set com(#RDBN_1) ButtonChecked(True)    else         set com(#RDBN_2) ButtonChecked(True)    endif   ENDROUTINE  
 
両方のフォームを保存し、コンパイルします。#INVFORMフォームを実行します。モーダル・フォーム実行ボタンがクリックされると、#MFORMが表示されます。いずれかのボタンを使用して#MFORMが閉じられ、#INVFORMが表示されるとクリックされたボタンが表示されます。

プッシュボタンだけが、設計時のModalResultプロパティを持ちます。ただし、プログラムでフォームのModalResultを他のコンポーネントの基づいて設定できます。以下のコードでは、フォームが閉じられるときにラジオ・ボタン#RDBN_1がチェックされるとModalResultはYesに割り当てられ、ラジオ・ボタン#RDBN_2がチェックされるとModalResultはNoに割り当てられます。
EVTROUTINE HANDLING(#RDBN_1.Click)
   Set Com(#Com_Owner) ModalResult(Yes) ENDROUTINE EVTROUTINE HANDLING(#RDBN_2.Click)    Set Com(#Com_Owner) ModalResult(No)  ENDROUTINE
 
[ |../../index.htm#lansa/l4wdev06_0835.htm]

  • No labels