version 11 (Modified)
Menu selected {(subMenu)} 数値
| 引数 | 型 | 説明 | |
| subMenu | MenuRef | 選択された項目を含むメニューの参照 | |
| 戻り値 | 数値 | 選択されたメニューコマンド | |
| 上位バイトにメニュー番号 | |||
| 下位バイトにメニュー項目番号 |
説明
Menu selected はフォームが表示されているときのみ使用できます。このコマンドは、メニューから選択されたメニュー項目を検出し、階層サブメニューの場合はサブメニューの参照を返します。
Tip: 可能な限り、Menu selectedを使用しないで、(負のメニューバー番号を用いた) 関連メニューバーのメニューに割り当てられたメソッドを使用してください。いずれのメニューが選択されたかを調べる必要がないため、関連メニューバーはより簡単に管理できます。
Menu selected コマンドを階層サブメニューに対して使用できます。第一レベルより下の階層のメニュー項目を選択すると、コマンドはsubMenu 引数に、選択された項目が属するサブメニューの参照 (MenuRef 型, 16文字の文字列) を返します。メニューコマンドが階層サブメニューを含まない場合、この引数には空の文字列が返されます。
Menu selected コマンドは、選択されたメニューの番号を倍長整数型で返します。選択されたメニュー番号を知るためには、返された数値を65536で割り、その結果を整数型に変換します。選択されたメニューコマンド番号を知るには、係数65536を使い、返された数値のモジューロを計算します。メニュー番号とメニューコマンド番号を計算するには以下のフォーミュラを使用します:
menu := Menu selected \ 65536 menuCommand := Menu selected % 65536
ビットワイズ演算子を使用してこれらの値を取得することもできます:
menu := (Menu selected & 0xFFFF0000) >> 16 menuCommand := Menu selected & 0xFFFF
メニューが選択されていない場合、Menu selectedは0を返します。
例題
以下の例はSET MENU ITEM MARKコマンドのメニューとメニュー項目引数を求めるためにMenu selectedを使用しています:
Case of : (Form event=On Menu Selected) C_STRING(16;$refMenuIncludingItem) C_LONGINT($ref;$MenuNum;$MenuItemNum) $ref:= Menu selected($refMenuIncludingItem) $MenuNum:=$ref\65536 $MenuItemNum:=$ref%65536 SET MENU ITEM MARK ($refMenuIncludingItem; $MenuItemNum;Char(18)) End case
Note: 項目が選択されていなければ、On Menu Selectedフォームイベントは有効にされません。メニューが、メニューバー中のメニューの一つでない場合、$refMenuIncludingItemには常に値が与えられ、$MenuNumは0となります。
参照