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

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

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE3 [FMX]ツリービュー(TreeView) 2013/10/09
 
前頁で[Standard]内の「Edit」(エディット;編集)について書きましたので次は、同じく[Standard]内の「TreeView」(ツリービュー)です。
   【Delphi2010の記事はこちら】
   【DelphiXE3[VCLアプリケーション]の記事はこちら】
 
 


(ヘルプより)
AlternatingRowBackground
このツリービュー内の行を、代替色で描画するかどうかを示します。
AlternatingRowBackground を設定すると、このツリービュー内の行の背景を描画する方法を指定することができます。
AlternatingRowBackground を True に設定した場合、行は代替背景色で描画され、そうでなければ、同色を使用して描画されます。
ヒント:このツリービューコンポーネントに適用されるスタイルは、代替色を定義します。
MultiSelect
一度に複数のツリー項目を選択できるかどうかを決定します。
MultiSelect を True に設定すると、ユーザーは一度に複数の項目を選択できるようになり、MultiSelect を False に設定すると、一度に 1 つの項目のみが選択可能になります。
ShowCheckboxes
このツリービュー内の各項目にアタッチされたチェックボックスを、表示するかどうかを示します。
Sorted
このツリービュー内のツリー項目をアルファベット順にソートするかどうかを決定します。
 
Sorted を True に設定すると、このツリービュー内のすべての項目の、アルファベット順ソートが有効になります。
Sorted を False に設定すると、項目を任意の順にすることができます。
 
Sorted プロパティのデフォルト値は、False です。
 
ヒント: OnCompare イベント ハンドラが提供されない場合、ツリービューのノードは、各ラベルによってアルファベット順にソートされます。
 
(ヘルプより)
TTreeView は、ディスク上のファイルおよびディレクトリなど、項目の階層リストを表示するウィンドウを表します。
 
TTreeView を使用すると、展開および折りたたみが可能なツリーを FireMonkey フォームに追加することができます。ツリービューコントロール内の各ノードは、ラベルと、各ノードに結び付けられたチェックボックス(オプション)で構成されます。各ノードには、サブノードのリストを関連付けることができます。サブノードを持つノードをクリックすると、関連付けられたサブノードのリストが展開されたり折りたたまれます。
 
ツリー項目は、恒例のように、項目デザイナを使ってデザイン時に入力・編集を行う事が出来ます。



試しに、下記のように項目追加してみました。



(ヘルプより)
Align
このコントロールの整列オプション(上、左、クライアントなど)を示します。
IsChecked
項目に関連づけられているチェックボックスに、チェックが付いているかどうかを示します。
IsExpanded
この項目は展開されているかどうかを示します。
項目が展開されている場合、その直下の子の項目がすべて表示されます。
IsSelected
ツリービューにおいて、項目が選択されているかどうかを示します。
TextAlign
テキストを、水平方向の整列で、どのように表示するかを示します。
TextAlign プロパティは、 TTextControl オブジェクトを、水平方向の整列で、どのように表示するかを示します。 TextAlign は、次の値のいずれかを取ります:
・taCenter (デフォルト)
 テキストを水平軸上で、TTextControl オブジェクトの真ん中に整列します。
・taLeading
 テキストを水平軸上で、TTextControl オブジェクト中の一番左の位置に整列します。
・taTrailing
 テキストを水平軸上で、TTextControl オブジェクト中の一番右の位置に整列します。
 
GlobalIndex
項目のグローバルインデックスを返します。
グローバルインデックスは、ツリー内のすべての可視ノードに対して、上から下へ、それぞれの Level に関係なく割り当てられている、連続した値です。
Level
現在の項目のインデントのレベルを返します。
トップレベルのノードに対する Level の値は 1、その子に対して 2、となっていきます。
 

↓ 実行





 
下図のように配置して、ボタンクリックイベントを下記のようにしてみました。

procedure TForm1.Button1Click(Sender: TObject);
var
 i : integer ;
 s : string ;
begin
 s := '' ;
 for i := 0 to TreeView1.Count-1 do
  s := s + TreeView1.Items[i].Text + #13 + #10 ;
 ShowMessage(s);
end;
保存・コンパイル・実行してみます。



というわけで、Itemsプロパティは従来とは異なり、すぐ1つ下にある項目だけが取れるようになっているようですね。
 
ツリービュー上の選択した項目は、Selected プロパティで取得出来るようです。
下図のように配置して、ボタンクリックイベントを下記のようにしてみました。

procedure TForm1.Button2Click(Sender: TObject);
var
 n : TTreeViewItem ;
 s : string ;
begin
 n := TreeView1.Selected ;
 if (n = nil) then
  s := '項目が選択されていません'
 else
  s := 'レベル:' + IntToStr(n.Level)
   + ' INDEX :' + IntToStr(n.Index)
   + ' 文字:' + n.Text ;
 ShowMessage(s);
end;
保存・コンパイル・実行してみます。



 



レベル(Level)プロパティは、階層のレベル(1:一番上、2:上から2番目、3:…)を示し、インデックス(Index)プロパティは、その階層内での順番(0〜)を表しているのが分かります。
 
全ての項目を取得したい場合は、例えば、

function Button3_Sub(n:TTreeViewItem;s:string) : string;
var
 i : integer ;
 c : TTreeViewItem ;
begin
 for i := 0 to n.Count-1 do begin
  c := n.Items[i] ;
  s := s + 'Lv' + IntToStr(c.Level)
     + ' Id' + IntToStr(c.Index)
     + ' ' + c.Text + #13 + #10 ;
  s := Button3_Sub(c,s) ;
 end;
 Result := s ;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var
 i : integer ;
 n : TTreeViewItem ;
 s : string ;
begin
 s := '' ;
 for i := 0 to TreeView1.Count-1 do begin
  n := TreeView1.Items[i] ;
  s := s + 'Lv' + IntToStr(n.Level)
     + ' Id' + IntToStr(n.Index)
     + ' ' + n.Text + #13 + #10 ;
  s := Button3_Sub(n,s) ;
 end;
 ShowMessage(s);
end;
のように(テキトウですが)再帰を使う等をしてやれば、



のように出来ると思われます。
 
 
他のコンポーネントと同様、スタイルによって概観は変化します。スタイルブックを追加し、スタイル「Air.Style」を指定した状態です。

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

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