2.11.7 ポップアップ・メニューの作成

ポップアップ・メニューは、ユーザーがコンポーネントを選択し、右マウス・ボタンをクリックすると表示されます。通常、コンポーネントに共通して関連するオプションのショートカットの作成に使用されます。

ポップアップ・メニューを作成するには、リポジトリタブのグループのメニューを開きます。ポップアップ・メニューを関連付けるコンポーネントにドラッグします。これ以外の方法では、コンポーネントを右クリックし、ポップアップ・メニューを起動し、Pop-up Menuオプションを選択します。メニュー・アイテムのキャプションを入力できる編集ボックスがデザインビューの上部に表示されます。

 

編集ボックスにメニュー・アイテムのキャプションを入力します。アイテムを追加するには、Enterキーを押します。

実行時にユーザーがフィールドを右クリックすると、ポップアップ・メニューが表示されます。

作成後にポップアップ・メニューを編集するには、関連付けるコンポーネントを右クリックし、ポップアップメニューの編集オプションを選択します。これ以外の方法では、[アウトライン] タブのポップアップ・メニューを選択します。

フィールドのポップアップ・メニューの作成中に、自動的に切り取り、コピー、貼り付けに有効なオプションを追加できます。これらのオプションで、ユーザーはフィールドの値を切り取り、コピー、および貼り付けできます。

これらの自動のオプションのいずれかを使用する場合は、ポップアップ・メニューの AutoActions プロパティを使用します(現在のバージョンではこの3つのautoactionsだけが実装でき、フィールドにのみ適用されます)。

ポップアップ・メニューとコンポーネントは、コンポーネントの PopupMenu プロパティを使用して関連付けられます。このプロパティを使用し、ポップアップ・メニューを他のコンポーネントに割り当てることができます。

同じポップアップ・メニューを複数のコンポーネントで使用することができます。例えば、エクスプローラ・タイプのインターフェース (左にツリー・ビュー、右にリスト・ビュー) では、通常は1つのポップアップ・メニューだけを使用します。

 

DEFINE_COM CLASS(#PRIM_TRVW) NAME(#TREEVIEW) POPUPMENU(#PMNU_1)

DEFINE_COM CLASS(#PRIM_LTVW) NAME(#LISTVIEW) POPUPMENU(#PMNU_1) 

 

その後、ポップアップ・メニューの1つのメニュー・アイテムごとに、選択されたアイテムのタイプによりアクションを実行するコードを記述します。この例では、ツリー・ビューのキー列は #DEPTMENT フィールドと #SECTION フィールドをソースにし、リスト・ビューのキー列は #EMPNO フィールドをソースにします。

EVTROUTINE HANDLING(#MiDetail.click)
if '#empno *ne *blanks'
   invoke #EmpForm.activateForm
   set #EmpForm emp_value(#empno) emp_dept(#deptment) emp_sect(#section)
else  
if '#section *ne *blanks'
   invoke #SecForm.activateform
   set #SecForm dept_value(#deptment) sect_value(#section) top(#std_num)
else  
if '#deptment *ne *blanks'
   invoke #DeptForm.activateform
   set #DeptForm dept_value(#deptment)
endif  
endif  
endif  
ENDROUTINE