†Sibylのお部屋†

【Sibyl】メインメニューとポップアップメニュー

作成開始日 2002.11.29
最終更新日 2022.01.22

SibylのMainMenu/PopupMenuオブジェクトを使用する際の注意点は5つ。

キー操作の問題

私はキーボード操作を好むのだが、MainMenuの仕様ではキー操作が限定される。トップメニューの項目は「Alt−英字」のシークエンスで、サブメニューの項目は「Ctrl+英字」のショートカットを使ってアクセスしなくてはならない。しかも、ショートカットキーは、メニューを開かずに直接機能を実行してしまう。すなわち、

[Alt]キーのシークエンスなしにメインメニューを開くことができない

のである。言い換えると、1キーでメニューを開くことができない。それがPMやWindowsの流儀なので仕方ないし、実害があるわけでもない。しかし、DOSプログラムとユーザーインターフェースの互換性を取りたい時には不便。ということで、実は私はこのMainMenuをけっこう嫌っていて、PanelやRadioGroupを使って、独自のメニューを作っていたのだが…

実は、そんなことをしなくても、

PopupMenuを使えば任意キーでメニューを開くことができる

たとえば、[F]キーを押したときにメニューを表示したければ、OnKeyPressハンドラの中で次のようにすれば良い。

if Key='f' then PopupMenu1.Popup(x,y);

メニューエディタの操作

メインメニューは、コントロールをフォームに置くだけで、最上部にメニューバーが表示される。これがメニューエディタとなる。しかし、ポップアップメニューはコントロールをフォーム上に置いただけでは何も表示されない。メニューエディタを表示するには、PopupMenuコントロールをダブルクリックする。

メニューエディタでは、カーソルキーを操作して位置を決め、以下のキーで編集する。使い方がどこにも書いていないので、とても困ったのだが、試行錯誤で何とか判った。

キー操作 機能
BackSpade 一文字削除
Delete 一項目削除
Insert 一項目挿入
Tab レベル間の移動
Esc 最上位レベルの項目の編集※
~ 次の文字がアクセラレーション・キー

※最上位のレベルの項目の編集をする方法はもう一つある。メニュー右端の新規項目(……)をクリックして、[←]キーで目的の項目に移動して上記キーで編集する。

【注意】


【Sibylのお部屋目次】 【ホーム】