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

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

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE4 [FMX]ポップアップメニュー(PopupMenu) 2015/03/28
 
前回は[Standard]内の「メインメニュー(MainMenu)」について記述しましたので、今回は、同じく[Standard]内の「ポップアップメニュー(PopupMenu)」です。
   【Delphi2010の記事はこちら】
   【DelphiXE3[VCLアプリケーション]の記事はこちら】
   【DelphiXE3[FMXアプリケーション]の記事はこちら】
 

 
XE4(FMX)

FMX.Menus.TPopupMenu
XE3(FMX)

FMX.Menus.TPopupMenu
 
フォーム上に作成されるPopupMenu1のアイコン/或いは構造ツリーに表示される「PopupMenu1」をダブルクリック/或いは PopupMenu1のコンテキストメニュー「項目エディタ」をクリックすると「項目デザイナ」が表示され、オブジェクトインスペクタと併せて使用することにより、メニューの作成・編集を行う事が出来ます。

 
[項目の追加]ボタンをクリックすると、メニューの項目を追加する事が出来ます。最初は「MenuItem1」と表示されます。

 
この「MenuItem1」をクリックして、オブジェクトインスペクタを見てみます。
XE4(FMX)XE3(FMX)
 
メインメニュー同様、ポップアップメニューも凄くコンパクトになった感じがします。というより不要なプロパティが見えなくなった、という感じでしょうか。
取りあえず「Text」プロパティの内容を「MenuItem1」から「テストです」に変えてみます。すると「項目デザイナ」の表示内容も変化するのが分かります。

 
オブジェクトインスペクタにて、メニュー項目 MenuItem1 のイベント欄の「OnClick」でダブルクリックを行い、クリックイベントを下記のように記述します。
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
 ShowMessage('これはテストです。');
end;
 
VCLアプリケーションの場合は、フォーム等に Popupプロパティがあり、そこに PopupMenu1 等と指定をする事によって、そのコントロール上で右クリックを行う事により自動的にポップアップメニューが表示されていました。
 
しかし、FireMonkeyアプリケーションの場合、フォームには、Popupプロパティはありません。ですので例えば、マウスボタンを押したイベントで右クリックを行なった場合にはポップアップメニューを表示させろ、というプログラミングを行うとか、Popupプロパティを持つコントロールを配置して、指定するとか、ボタンを押したらポップアップメニューを表示させるとか、等のような事になりそうな感じです。
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Single);
var
 p : TPointF ;
begin
 if (ssRight in Shift) then begin
  p := Form1.ClientToScreen(PointF(X,Y));
  PopupMenu1.Popup(p.X,p.Y);
 end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 PopupMenu1.Popup(Screen.MousePos.X,Screen.MousePos.Y);
end;

保存・コンパイル(ビルド)・実行を行います。

フォーム上で右クリック
又は

ボタンをクリック

メニュー項目「テストです」をクリック


のようになって、思惑通りに動作していることが確認出来ます。
 
「項目デザイナ」でもう少しメニュー項目を追加してみます。

保存・コンパイル(ビルド)・実行を行います。

 
これを MacOSXアプリケーションにしてみます。

「テストです」をクリックすると・・・


 
というわけで、WindowsアプリケーションとMacOSXアプリケーションは同じように動作するようです。
 
 
それでは、スタイルブックを指定してみます。
なし
Air
Amakrits
AquaGraphite
Blend
Dark
GoldenGraphite
Light
RubyGraphite
Transparent
 
MacOSX アプリケーションでも、スタイルブックの指定は有効です。



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