Create  Edit  Diff  Phillro Industries  Index  Search  Changes  History  Source  RSS  Note  wikifarm  Login

Phi::Menu

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 の設定によっては,不必要な分割線をサブメニューから削除します。

アプリケーションは Menu?#items の Phi::MenuItem#rethink_lines を呼び出すことによって不必要な分割線をさらに削除できます。 auto_line_reduction は単に,この調整が自動的に行なわれるようにするかどうかを指定します。

注意
メニューの auto_line_reduction は,そのメニューの Menu?#items が持つ Phi::MenuItem#auto_line_reduction に関連付けられています。一方を設定すると,自動的にもう一方に反映されます。

images : Phi::ImageList?

個々のメニュー項目の横に表示されるイメージのリスト

個々のメニュー項目は, Phi::MenuItem#image_index を設定して,リストのどのイメージを表示するか示します。

参考
アプリケーションが Phi::ActionList を使う場合,この property は Phi::ActionList#images の値になります。このため,同じ処理を行う Phi::MenuItemPhi::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

  1. 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 が変更されたときに自動的に呼び出されます。

Last modified:2004/11/17 21:35:41
Keyword(s):
References:[Phi-Classes] [Phi-Constants] [Phi::MainMenu] [Phi::MenuItem]