[ top ] [ prev ] [ up ] [ next ]
Phi::Menu
properties
- auto_hotkeys : Fixnum
-
メニュー項目のアクセラレータキーを自動的にリセットできるようにするかどうか
auto_hotkeys
プロパティを設定すると,メニュー内の項目のアクセラレータキーがリセットされているかどうかを必要に応じて Delphi が自動的に確認するように指定できます。これによって,各メニュー項目に 1 つのアクセラレータキーが存在し,しかも複数の項目が同じアクセラレータキーを持つことがなくなります。この結果,実行時に動的に追加された各メニュー項目は,衝突の発生しないアクセラレータキーを持てるようになります。 Delphi は,アクセラレータキーを調整するときに既存のアクセラレータキーマップをすべて保持しようとしますが,各項目に固有のアクセラレータを持たせるために,キーマップの一部が変更されることもあります。
auto_hotkeys
プロパティが MA_AUTOMATIC の場合,メニューを表示する前に, Delphi はアクセラレータキーマップを確認および調整します。
auto_hotkeys
プロパティが MA_MANUAL の場合, Delphi は,最上位レベルのメニュー項目は変更しませんが,サブメニューの親に当たるメニュー項目の auto_hotkeys
プロパティの設定によっては,サブメニューのアクセラレータキーを調整します。
auto_hotkeys
プロパティが MA_MANUAL の場合,アプリケーションは, Items プロパティの RethinkHotkeys メソッドを呼び出してメニュー項目を調整できます。 auto_hotkeys
プロパティは,この調整が自動的に行なわれるようにするかどうかを制御するだけのものです。
- 注意
-
メニューの
auto_hotkeys
プロパティは,そのメニューの Items プロパティが実装されている TMenuItems オブジェクトの auto_hotkeys
プロパティに関連付けられています。したがって,一方を設定すると,自動的にもう一方に反映されます。
- auto_line_reduction : Fixnum
-
重複する分割線をメニューから自動的に削除するかどうか
auto_line_reduction
を設定すると,メニューが分割線上で開始または終了していないこと,および 2 本の分割線が並んで表示されていないことを Delphi が自動的に確認するように指定できます。この結果,実行時に動的に作成したメニューから不要な分割線がなくなります。
- MA_AUTOMATIC
-
メニューを表示する前に, Delphi は不必要な分割線を削除します。
- MA_MANUAL
-
Delphi は,最上位レベルのメニュー項目から分割線を削除しませんが,サブメニューの親に当たるメニュー項目の
auto_line_reduction
の設定によっては,不必要な分割線をサブメニューから削除します。
アプリケーションは items の Phi::MenuItem#rethink_lines を呼び出すことによって不必要な分割線をさらに削除できます。 auto_line_reduction
は単に,この調整が自動的に行なわれるようにするかどうかを指定します。
- 注意
-
メニューの
auto_line_reduction
は,そのメニューの items が持つ Phi::MenuItem#auto_line_reduction に関連付けられています。一方を設定すると,自動的にもう一方に反映されます。
- images : Phi::ImageList
-
個々のメニュー項目の横に表示されるイメージのリスト
個々のメニュー項目は, Phi::MenuItem#image_index を設定して,リストのどのイメージを表示するか示します。
- 参考
-
アプリケーションが Phi::ActionList を使う場合,この property は Phi::ActionList#images の値になります。このため,同じ処理を行う Phi::MenuItem と Phi::ToolButton とに,同じ image を表示することができます。
- owner_draw : Boolean
-
メニュー項目がアプリケーションによって描画されるかどうか
- true
-
on_draw_item でアプリケーションがメニュー項目を描画する。
メニュー項目は,画面への描画が必要なときに on_measure_item および on_draw_item を呼び出します。
- false (default)
-
caption を表示します。 images と image_index が設定されている場合,左側に image を表示します。
owner_draw menu は,項目の視覚化に効果があります。例えば,色を選択するメニューで,色の名前ではなく,指定した色で描画される四角形を表示できます。
BiDi 関連
- bi_di_mode : Fixnum ( BiDiMode )
-
中東のロケールでのメニューのレイアウト
- bdLeftToRight
-
読み出し順序は左から右。アラインメントは変更されない。垂直スクロールバーはコントロールの右端に配置される
- bdRightToLeft
-
読み出し順序は右から左。アラインメントは変更される。垂直スクロールバーはコントロールの左端に配置される
- bdRightToLeftNoAlign
-
読み出し順序は右から左。アラインメントは変更されない。垂直スクロールバーはコントロールの左端に配置される
- bdRightToLeftReadingOnly
-
読み出し順序は右から左。アラインメントとスクロールバーは変更されない
- 注意
-
日本語 Windows95/98/NT4 では指定しても意味を持ちません。
- parent_bi_di_mode : Boolean = true
-
bi_di_mode が,メニューを使用するコントロールから継承されるかどうか
- true (default)
-
メニュー項目のレイアウトが関連付けられているフォームまたはコントロールの bi_di_mode 設定に従う
- false
-
デフォルトの bi_di_mode 設定をオーバーライドして,メニューのレイアウトを独立して制御できる
- 注意
-
日本語 Windows95/98/NT4 では指定しても意味を持ちません。
methods
- do_change(source, rebuild)
-
change event を生成します。
- source : Phi::MenuItem
-
変更されたメニュー項目 ( ある場合 )
- rebuild : Boolean
-
変更によってメニューが項目を再生成する必要があるかどうか
do_change
は,メニュー項目の property が変更されたときに自動的に呼び出されます。
[ top ] [ prev ] [ up ] [ next ]