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

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

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE3 [FMX]ポップアップボックス(PopupBox) 2013/09/28
 
前頁で[Standard]内の「GroupBox」(グループボックス)について書きましたので次は、同じく[Standard]内の「PopupBox」(ポップアップボックス)です。これはDelphi2010、XE3のVCLアプリケーションにはありません。
ぱっと見た感じでは、文字入力のないVCLコンボボックスのようなものでしょうか?
 
 


(ヘルプより)
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内に存在しない文字内容を指定する事はできません。
 

 




試しに、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イベントは、選択を行なう前に実行されているのが分かります。
 
 
ただ、選択した内容により ModalResultプロパティを変更してモーダル画面を閉じる、というような処理には使いにくいですね。
あと、VCLでのコンボボックスでは、文字入力+一覧選択が出来ましたが、FireMonkey(FMX)でのコンボボックスでは、文字入力が出来ないみたいですね。となると、多少の表現方法と操作方法は異なりますが、どう使い分けるのか?というのはあるかもしれません。
 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
▲2013/09/27
 2013/09/28
▼2013/09/29
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.