« ☆コンポーネントの配置 | トップページ | ☆クリップボードを使ってみる。 »

☆TreeViewを使ってみる。

[Windowsフォームアプリケーション]
<TreeNodeの追加と削除>
TreeViewへのTreeNodeの追加と削除を試してみました。なんかごちゃごちゃしていますが、 下記のプログラムで問題なく動作しているみたいです。
//選択ノードの兄弟を追加する。
procedure TWinForm.Button1_Click(sender: System.Object;
 e: System.EventArgs);
begin
 if (TreeView1.SelectedNode = nil) or
  (TreeView1.SelectedNode.Parent = nil) then
  TreeView1.Nodes.Add('Sibling')
 else
  TreeView1.SelectedNode.Parent.Nodes.Add('Sibling');
end;

//選択ノードの子を追加する。
procedure TWinForm.Button2_Click(sender: System.Object;
 e: System.EventArgs);
begin
 if (TreeView1.SelectedNode <> nil) then
  TreeView1.SelectedNode.Nodes.Add('Child');
end;

//選択ノード位置に挿入する。
procedure TWinForm.Button3_Click(sender: System.Object;
 e: System.EventArgs);
begin
 if (TreeView1.SelectedNode <> nil) then
 begin
  if (TreeView1.SelectedNode.Parent = nil) then
   TreeView1.Nodes.Insert
     (TreeView1.SelectedNode.Index, TreeNode.Create('Insert'))
  else
   TreeView1.SelectedNode.Parent.Nodes.Insert
     (TreeView1.SelectedNode.Index , TreeNode.Create('Insert'));
 end;
end;

//選択ノードを削除する。
procedure TWinForm.Button4_Click(sender: System.Object;
 e: System.EventArgs);
begin
 if (TreeView1.SelectedNode <> nil) then
  TreeView1.SelectedNode.Remove;
end;
<TreeNodeの取得>
TreeNodeの取得には下記のプロパティが用意されています。

FirstNode  ツリー ノード コレクション内の最初の子ツリー ノードを取得します。
LastNode  最後の子ツリー ノードを取得します。
NextNode  次のレベルにある兄弟ツリー ノードを取得します。
PrevNode  前のレベルにある兄弟ツリー ノードを取得します。
NextVisibleNode 次のレベルにある、表示されているツリー ノードを取得します。
PrevVisibleNode 前のレベルにある、表示されているツリー ノードを取得します。

<気になること>
私はTreeViewを使って階層構造のファイルの読み書きする時、Delphi7までは、TTreeNodeのLevelというプロパティを多用してきましたが、それが見当たりません。 その代わりになるかどうかわかりませんが、FullPathというプロパティがあります。 今後検討していきたいと思います。

|

« ☆コンポーネントの配置 | トップページ | ☆クリップボードを使ってみる。 »