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

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

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE4 [FMX]ポップアップボックス(PopupBox) 2015/04/05
 
前回は[Standard]内の「グループボックス(GroupBox)」について記述しましたので、今回は、同じく[Standard]内の「ポップアップボックス(PopupBox)」について記述します。これはDelphi2010、XE3のVCLアプリケーションにはありません。
   【DelphiXE3[FMXアプリケーション]の記事はこちら】
 

 
XE4(FMX)

FMX.ExtCtrls.TPopupBox
XE3(FMX)

FMX.Menus.TPopupBox
(ヘルプより)
IsPressed
このボタンのデフォルトの状態が、押下か否かを示します。
このボタンがデフォルトの状態で押されているようにするには、IsPressed プロパティを True に設定します。このボタンは、もう一度クリックすると、初期の押下されていない状態に戻ります。
ヒント:IsPressedプロパティの設定は、StaysPressedプロパティがTrue に設定されているときのみ、効果が現れます。
StaysPressed
このボタンがクリックされた後に、押された状態のままにするかどうかを示します。
StaysPressedプロパティをTrueに設定すると、このボタンがクリックされた後、押された状態のままにすることができます。このボタンは、もう一度クリックすると、初期の押下されていない状態に戻ります。
StaysPressedがFalseに設定された場合、このボタンは標準のプッシュボタンと同じように動作し、ボタンの表面上でマウスボタンを離すとすぐに初期の状態に戻ります。
こういったボタンで、IsPressed/StaysPressedプロパティが有効になるのかどうか今ひとつ分かりませんけれども…。
 
ItemIndex
選択された項目のインデックスを示します。
ItemIndexを読み取ることにより、どの項目が選択されているかを確認することができます。ItemIndexの数字は0から振られます。項目が選択されていない場合、ItemIndexの値は-1になります。
インデックス値を渡してItemIndexをプログラムで設定すると、項目を選択することができます。ItemIndex値を変更すると、Text値にも影響を与えます。Text値は、ItemIndexと等しいインデックスを持つ、Itemsリストからの文字列です。
Items
ポップアップボックスが表示された際に現れる、項目のリストを表します。
リストの(下位TStrings)メソッドを使用すると、これらの項目を管理することができます(項目の追加、挿入、削除など)。
ComboBoxやListBox等でおなじみですね。
 
ModalResult
ボタンがその(モーダルな)親フォームを閉じるかどうか、および閉じる方法を指定します。
ボタンコンポーネントのModalResultプロパティの設定は、ボタンのクリックでモーダルフォームを閉じる簡単な方法です。ボタンがクリックされると、親フォームのModalResultプロパティに、ボタンのModalResultプロパティと同じ値が設定されます。
内容についてはボタンの頁を参照して下さい。
 
Textプロパティは、Items内に存在しない文字内容を指定する事はできません。しかし、Textプロパティを変化させたあと、Itemsプロパティ内容を変更すると、Textプロパティ内容は自動的に更新は行われませんので注意が必要かもしれません。
 
ユニットが変わっていますが、オブジェクトインスペクタでのプロパティ・イベントの差異はなさそうです。
 

 




試しに、Itemsプロパティに
あいうえお
カキクケコ
SASISUSESO
tatituteto
と入れてみました。
ItemIndex値は「-1」です。
 
これをコンパイル・実行すると…
 
PopupBox1をクリックすると、文字内容一覧がポップアップ表示されます。そのうちのいずれかを選択すると、ボタンに選択した文字内容が表示されます。
 
クリックする場所は右端のUP/DOWN辺りだけに限定されるのではなく、ポップアップボタン全体が反応して一覧ポップアップ表示されます。
 
選択した内容はあとで ItemIndex値/Text値を参照すればいいと思います。
 
次に、ボタンクリック時の挙動の確認をしておきます。
まずは、
procedure TForm1.PopupBox1Change(Sender: TObject);
begin
 ShowMessage(IntToStr(PopupBox1.ItemIndex));
end;
としてみました。コンパイル・実行します。

        ↓

        ↓

        ↓

OnChangeイベントは、選択を行なった後に実行されているのが分かります。
 
次に、
procedure TForm1.PopupBox1Click(Sender: TObject);
begin
 ShowMessage(IntToStr(PopupBox1.ItemIndex));
end;
としてみました。コンパイル・実行します。

        ↓

        ↓

        ↓

OnClickイベントは、選択を行なう前に実行されているのが分かります。
 
 
下図のように画面レイアウトしてみました。

以下、
PopupBox1 は未指定状態
PopupBox2 は Index=0 指定状態
PopupBox3 にフォーカスがある状態で
PopupBox4 の上にマウスを移動している状態、です。
 
 
指定無し
 
Air.Style
 
Amakrits.Style
 
AquaGraphite.style
 
Blend.Style
 
Dark.style
 
GoldenGraphite.Style
 
Light.Style
 
RubyGraphite.style
 
Transparent.Style
 
MacOSX アプリケーションでも動作OKです。
 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
>DelphiXE4
△TOP
▲2015/04/04
 2015/04/05
▼2015/04/06
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.