AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE3 [FMX]メニューバー(MenuBar) 2013/10/05
 
前頁で[Standard]内の「Splitter」(スプリッター)について書きましたので次は、同じく[Standard]内の「MenuBar」(メニューバー)です。Delphi2010・VCLアプリケーションでの「ActionMainMenuBar」(アクションメインメニューバー)に相当でしょうか。
   【Delphi2010の記事はこちら】
   【DelphiXE3[VCLアプリケーション]の記事はこちら】
 
 


(ヘルプより)
Align
このコントロールの整列オプション(上、左、クライアントなど)を示します。
 
(ヘルプより)
編集可能なメニュー バーを表します。
TMenuBar は、移動、サイズ変更、および編集が可能なメニュー バーの構造を記述するものです。 TMenuBar は、TMenuItems から構成されています。
メニュー項目はいくつかの方法で追加することができます。
 
・設計時にメニュー項目を追加するには、次のいずれかを行います。
 ・コンポーネントを右クリックし、コンテキスト メニューから[項目の追加]を選択します。
 ・コンポーネントをダブルクリックし、[項目デザイナ]で[項目の追加]ボタンをクリックします。
 ・コンポーネントを右クリックし、コンテキスト メニューから[項目エディタ...]を選択したあと、[項目の追加]ボタンをクリックします。
 
・実行時にメニュー項目を追加するには、TMenuBar の AddObject プロシージャを使用します。
 
Items および ItemsCount を使用して、メニュー項目についての情報を抽出します。
 
画面デザイン時の例:


項目エディタの表示


項目エディタで下記のようなメニュー項目を追加


実行時はこのような感じに



(ヘルプ)
ClipChildren
現在のコントロールにクリップした子があるかどうかを示します。
ClipChildren は、コントロールにクリップした子があるなら True、そうでなければ False となります。
ClipParent
現在のコントロールが親をクリップしているかどうかを示します。
ClipParent は、コントロールが描画された際に親をクリップしている場合には True を、そうでなければ False を返します。
DesignVisible
コントロールのデザインが可視かどうかを示します。
DesignVisible は、コントロールのデザインが可視の場合には True、そうでなければ False を返します。
EnableDragHighlight
コントロール上にオブジェクトがドラッグされた際に、コントロールを強調表示するかどうかを示します。
HitTest
マウスクリックイベントを、このコントロールがとらえることができたかどうかを示します。
HitTestを True に設定した場合、このコントロールは、マウスのすべての OnClick および OnDblClick イベントをとらえます。
HitTestを False に設定した場合、これら2つのマウスクリックイベントは、このコントロールを素通りするため、このコントロールの背後に配置されているコントロールが、代わりにこのマウスイベントを受信します。
Locked
コントロールが設計時にロックされているかどうかを示します。
ロックされたコントロールは、設計時に変更することはできません。
TextAlign
テキストを、水平方向の整列で、どのように表示するかを示します。
TextAlign プロパティは、 TTextControl オブジェクトを、水平方向の整列で、どのように表示するかを示します。 TextAlign は、次の値のいずれかを取ります:
・taCenter (デフォルト)
 テキストを水平軸上で、TTextControl オブジェクトの真ん中に整列します。
・taLeading
 テキストを水平軸上で、TTextControl オブジェクト中の一番左の位置に整列します。
・taTrailing
 テキストを水平軸上で、TTextControl オブジェクト中の一番右の位置に整列します。

というわけで、通常のメインメニュー(MainMenu)とぱっと見では違いがわかりませんが(メインメニューはフォーム画面上にメニューが表示されないので少し分かりにくいですが)、実行時に編集可能、というところがポイントなのでしょうけれども?
 
よく分かりませんが、例えば、

のようにボタンを配置して、そのクリックイベントハンドラを
procedure TForm1.Button1Click(Sender: TObject);
var
 m : TMenuItem ;
begin
 m := TMenuItem.Create(SELF) ;
 m.Name := 'MenuItemA';
 m.Text := 'メニューA';
 MenuBar1.AddObject(m);
end;
いい加減ですがこのようにした場合、実行すると、



みたいな感じでしょうか?
例外処理も何も入っていませんからその辺りはちゃんとしないといけないでしょうけれども…。 ただ、これに関しては、メインメニューの方でも可能ですので、そうなるとメインメニューとの違いは、メインメニューはアプリケーションの上部に表示固定となるけれども、メニューバーの場合は任意の場所に配置可能、という事になるでしょうか?
 
 
メニューバーも他のコンポーネントと同様、スタイルによって概観は変化します。スタイルブックを追加し、スタイル「Air.Style」を指定した状態です。

保存・コンパイル・実行を行います。

 
メインメニュー

 
メニューバー

 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
▲2013/10/04
 2013/10/05
▼2013/10/05
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.