7.51.2 EVTROUTINEの使用例

次のプログラムは、ユーザーが#HelloBtnをクリックするか、メニュー項目の#HelloMitを選択したときに、"hello"のメッセージを出力します。

EVTROUTINE HANDLING(#HelloBtn.Click #HelloMit.Click)
         MESSAGE MSGTXT('hello')
ENDROUTINE
 

次のプログラムでは、まずクリック・イベントが処理される#PHBN_1、#PHBN_2、#PHBN_3という3つのプッシュ・ボタンに総称名の#AnyComponentを定義します。次に、#Button_Captionフィールドの値をクリックされたボタンのキャプションに設定します。

EVTROUTINE HANDLING(#PHBN_1.Click #PHBN_2.Click #PHBN_3.Click) COM_SENDER(#AnyComponent)
    #Button_Caption := #AnyComponent.Caption
ENDROUTINE  
 

00000081

次のプログラムは、メニュー項目にポップアップ・メニューとコレクションを定義します。フォームが初期化されるとコレクションに5つのメニュー項目が作成されます。メニュー項目コレクションのクリック・イベントのイベント・ルーチンでは、項目に総称名の#AnyOfTheGroupが指定されます。次にこの名前を使用して、クリックされたメニュー項目のキャプションを#M_Captionという名前のフィールドに割り当てます。

DEFINE_COM CLASS(#PRIM_PMNU) NAME(#PMNU_1)
DEFINE_COM CLASS(#PRIM_KCOL) NAME(#ITEMS) COLLECTS(#PRIM_MITM) KEYEDBY(#STD_NUM)
 
EVTROUTINE HANDLING(#COM_OWNER.Initialize) OPTIONS(*NOCLEARMESSAGES *NOCLEARERRORS)
   Set Com(#Items<1>) Caption('Item One') Parent(#PMNU_1) 
   Set Com(#Items<2>) Caption('Item Two') Parent(#PMNU_1) 
   Set Com(#Items<3>) Caption('Item Three') Parent(#PMNU_1)
   Set Com(#Items<4>) Caption('Item Four') Parent(#PMNU_1) 
   Set Com(#Items<5>) Caption('Item Five') Parent(#PMNU_1) 
ENDROUTINE  
 
EVTROUTINE HANDLING(#Items<>.Click) COM_SENDER(#AnyOfTheGroup)
   Change #M_Caption #AnyOfTheGroup.Caption
ENDROUTINE  
 

00000082