程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> TTreeView講解 [4] - TTreeNode 類的常用屬性與 TTreeView 類的

TTreeView講解 [4] - TTreeNode 類的常用屬性與 TTreeView 類的

編輯:Delphi

 本例效果圖:

TTreeView講解 [4] - TTreeNode 類的常用屬性與 TTreeView 類的 OnChange 事件

unit Unit1; 
 
interface 
 
uses 
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
 Dialogs, ComCtrls, StdCtrls, Grids; 
 
type 
 TForm1 = class(TForm) 
  TreeView1: TTreeVIEw; 
  StringGrid1: TStringGrid; 
  procedure FormCreate(Sender: TObject); 
  procedure TreeVIEw1Change(Sender: TObject; Node: TTreeNode); 
 end; 
 
var 
 Form1: TForm1; 
 
implementation 
 
{$R *.dfm} 
 
procedure TForm1.FormCreate(Sender: TObject); 
var 
 Nodes: TTreeNodes; 
 node: TTreeNode; 
begin 
 {初始化 TreeVIEw1} 
 TreeVIEw1.Align := alLeft; 
 Nodes := TreeVIEw1.Items; 
 node := Nodes.Add(nil, '一連長'); 
 node := Nodes.AddChild(node, '一排長'); 
 node := Nodes.AddChild(node, '一班長'); 
 node := Nodes.AddChild(node, '戰士1'); 
 Nodes.Add(node, '戰士2'); 
 Nodes.Add(node, '戰士3'); 
 Nodes.Add(node, '戰士4'); 
 node := node.Parent; 
 Nodes.Add(node, '二班長'); 
 Nodes.Add(node, '三班長'); 
 node := node.Parent; 
 Nodes.Add(node, '二排長'); 
 Nodes.Add(node, '三排長'); 
 node := node.Parent; 
 Nodes.Add(node, '二連長'); 
 Nodes.Add(node, '三連長'); 
 
 {初始化 StringGrid1} 
 with StringGrid1 do begin 
  Align := alClIEnt; 
  FixedRows := 0; 
  ColCount := 2; 
  ColWidths[0] := 78; 
  ColWidths[1] := 50; 
  DefaultRowHeight := 18; 
  RowCount := 15; 
  Cells[0,0] := '當前選擇'; 
  Cells[0,1] := '序號'; 
  Cells[0,2] := '所在級別'; 
  Cells[0,3] := '在兄弟中排行'; 
  Cells[0,4] := '下級總數'; 
  Cells[0,5] := '上級元素'; 
  Cells[0,6] := '上一個'; 
  Cells[0,7] := '下一個'; 
  Cells[0,8] := '上一個兄弟'; 
  Cells[0,9] := '下一個兄弟'; 
  Cells[0,10] := '上一個可見'; 
  Cells[0,11] := '下一個可見'; 
  Cells[0,12] := '第一個下級'; 
  Cells[0,13] := '最後一個下級'; 
  Cells[0,14] := '總數'; 
 end; 
end; 
 
procedure TForm1.TreeVIEw1Change(Sender: TObject; Node: TTreeNode); 
begin 
 with StringGrid1 do begin 
 
  {清除第二列的數據} 
  StringGrid1.Cols[1].Clear; 
 
  {當前選擇} 
  Cells[1,0] := Node.Text; 
 
  {序號; AbsoluteIndex 是絕對序號} 
  Cells[1,1] := IntToStr(Node.AbsoluteIndex); 
 
  {所在級別} 
  Cells[1,2] := IntToStr(Node.Level); 
 
  {在兄弟中排行} 
  Cells[1,3] := IntToStr(Node.Index); 
 
  {下級總數} 
  Cells[1,4] := IntToStr(Node.Count); 
 
  {上級元素} 
  if Boolean(Node.Parent) then Cells[1,5] := Node.Parent.Text; 
 
  {上一個} 
  if Boolean(Node.GetPrev) then Cells[1,6] := Node.GetPrev.Text; 
 
  {下一個} 
  if Boolean(Node.GetNext) then Cells[1,7] := Node.GetNext.Text; 
 
  {上一個兄弟} 
  if Boolean(Node.getPrevSibling) then Cells[1,8] := Node.getPrevSibling.Text; 
 
  {下一個兄弟} 
  if Boolean(Node.getNextSibling) then Cells[1,9] := Node.getNextSibling.Text; 
 
  {上一個可見} 
  if Boolean(Node.GetPrevVisible) then Cells[1,10] := Node.GetPrevVisible.Text; 
 
  {下一個可見} 
  if Boolean(Node.GetNextVisible) then Cells[1,11] := Node.GetNextVisible.Text; 
 
  {第一個下級} 
  if Node.HasChildren then Cells[1,12] := Node.getFirstChild.Text; 
 
  {最後一個下級} 
  if Node.HasChildren then Cells[1,13] := Node.GetLastChild.Text; 
 
  {總數} 
  Cells[1,14] := IntToStr(Node.Owner.Count); 
 end; 
end; 
 
end. 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved