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

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

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE3 [FMX] カラーコンボボックス(ColorComboBox)2013/11/20
 
前回は [Colors]内のカラーボタン(ColorButton)について見てみましたが今回はその次のカラーコンボボックス(ColorComboBox)について見ていきます。Delphi2010・VCLアプリケーションでは、カラーボックス(ColorBox)という少し似たコンポーネントはありますが、機能内容は多少異なるかもしれません。
   【Delphi2010の記事はこちら】
   【DelphiXE3[VCLアプリケーション]の記事はこちら】
   
   【継承元のコンボボックス(ComboBox)についてはこちら】
 
 
[Colors]内
FMX
 
ヘルプより。
カラー パレットから色を選択できるコンボ ボックスを表します。
 
TColorComboBox の動作は標準の TComboBox と似ていますが、ドロップダウン時に標準の Delphi パレットの色が一覧表示されて選択できる点が異なります。ドロップダウン リスト内の色は、色の付いた小さな正方形と色の名前とで表示されます。
 


 
Color
このカラーコンボボックスで選択されている色を示します。
Color プロパティを設定または読み込みすると、このカラー コンボボックスで選択されているアルファ カラーを指定または取得することができます。
TAlphaColor は 4 種類のチャネル(ARGB)で構成され、4 バイトの 16 進数値で指定されます。下位の 3 バイトは RGB 色チャネルを表わし、それぞれ青、緑、赤の強度です。最上位バイトは透過度の係数(アルファ チャネル)です。$FFFF0000(Delphi)または 0xFFFF0000(C++)という値は最大輝度の純粋な青色を表します。$FF00FF00(Delphi)または 0xFF00FF00(C++)は純粋な緑色、$FF0000FF(Delphi)または 0xFF0000FF(C++)は純粋な赤色です。$FF000000(Delphi)または 0xFF000000(C++)は黒色であり、$FFFFFFFF(Delphi)または 0xFFFFFFFF(C++)は白色です。
ItemIndex
現在選択された項目のインデックスを示します。
 
コンボ ボックスで選択されている項目のインデックスを、取得または設定します。リストの先頭の項目のインデックスは 0、2 番目の項目のインデックスは 1 です。以降も同様です。 項目が選択されていない場合、ItemIndex の値は -1 になります。
 
 
それでは少し試してみます。
ラベルとカラーボックスを配置します。

カラーコンボボックスの変更イベントハンドラを下記のようにします。
procedure TForm1.ColorComboBox1Change(Sender: TObject);
begin
 Label1.Text := 'Idx:'+IntToStr(ColorComboBox1.ItemIndex);
 ColorBox1.Color := ColorComboBox1.Color ;
end;
保存・コンパイル・実行します。



カラーコンボボックスをクリックすると
色の一覧が表示され、選択する事が出来ます




 
 
コンボボックス一覧に表示する内容を自分で追加入力する事が出来る様子です。
カラーコンボボックスを右クリックして表示されるメニューの「項目エディタ」を実行すると「項目デザイナ」画面が表示されます。ダブルクリック、オブジェクトインスペクタ画面下の「項目エディタ」クリックでも可能です。



 
項目は、画面右側の「TListBoxItem」をクリックすると、
・TListBoxItem
・TMetropolisUIListBoxItem
のうちから選択出来ますが、後者は名前のごとく、Metropolis UI アプリケーションを作成する際の項目でしょうから、ここでは普通に、TListBoxItem のままにしておきます。

見たところ、色指定がありませんね。通常のコンボボックス(ComboBox)のものがそのまま継承されているだけ、という感じでしょうか? 試しに5つ追加してみました。

 
カラーコンボボックスの変更イベントハンドラを下記のようにします。ItemIndex値の判定で即値を指定しても大丈夫なのかどうかは「?」ですが。
procedure TForm1.ColorComboBox1Change(Sender: TObject);
var
 col : TAlphaColor ;
begin
 case(ColorComboBox1.ItemIndex)of
 148: col := $800000FF;
 149: col := $8000FF00;
 150: col := $8000FFFF;
 151: col := $80FF0000;
 152: col := $80FF00FF;
 else
    col := ColorComboBox1.Color ;
 end;
 Label1.Text := 'Idx:'+IntToStr(ColorComboBox1.ItemIndex);
 ColorBox1.Color := col ;
end;
ColorComboBox1.Color に自分独自の色値を指定することは出来ないようです。一覧内に存在しない場合には、Null値になるようです。
保存・コンパイル・実行します。





 
まぁ、こういう事が正しいのかどうかについては分かりません。おそらくはリソースを消費するでしょうから、不必要であればデフォルト状態のまま利用されたほうが無難だと思われます。
 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
▲2013/11/19
 2013/11/20
▼2013/11/20
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.