Delphi7
について
| HasChildren | := | True; | 子 下位ノードがある。 |
| False; | 下位ノードなし。 | ||
| Count | n | integer | 下位ノード 数 |
for i := 0 to Count - 1 do Item[i] |
{******************************************
** 選択されたノード以下のすべてのノード数
** を求めるには?
**
*******************************************}
procedure TForm1.Button14Click(Sender: TObject);
begin
if TreeView1.Selected <> nil then
Label10.Caption := format('%d',
[Count_Under_Node( TreeView1.Selected)])
else
Label10.Caption :='選択なし';
end;
|
ここはただボタンを押した時に選択されて いるかどうかを調べて 何も選択されてなければ メッセージを表示するだけ 選択されていれば、そのノード以下を計算。 | ||||||||||||||||||||||||||||||||||||
{******************************************
** Node 以下の子の全数量を計算
** 再帰呼び出し
**
*******************************************}
function TForm1.Count_Under_node( Node : TTreeNode):integer;
var
i , all_count : integer;
begin
all_Count := Node.Count;
with Node do
if HasChildren then
for i := 0 to Count - 1 do
all_Count := all_Count + Count_Under_Node(Item[i]);
result := all_Count;
end;
|
親
.count = 3子1.count = 2 孫1.count = 2 曾孫1.count = 0 曾孫2.count = 0 孫2.count = 0 子2.count = 0 子3.count = 0 とこんな計算。 つまりこれで
|
| 目次に戻る |
2006/03/05 start ********* Last Update 2006/10/10 16:58 JST
| その他、お気づきの点がありましたら連絡先はこちらから |