核心屬性
| 屬性 | 類型 | 說明 |
| AbsoluteIndex | Integer | 節點在整棵樹中的絕對索引 (從 0 開始) |
| Count | Integer | 直接子節點數 |
| Cut | Boolean | 剪切狀態顯示 (灰斜體) |
| Data | Pointer | 關聯用戶數據 |
| Deleting | Boolean | 是否正在刪除中 (防遞歸) |
| DropTarget | Boolean | 拖放目標高亮 |
| Expanded | Boolean | 展開/折疊狀態 |
| Focused | Boolean | 是否擁有編輯焦點 |
| Handle | HWND | 所屬 TreeView 窗口句柄 |
| HasChildren | Boolean | 是否有子節點 (可虛擬化顯示 + 號) |
| ImageIndex | TImageIndex | 正常狀態圖標索引 |
| Index | Longint | 在父節點下的同級索引 |
| IsVisible | Boolean | 是否可見 (所有父節點展開) |
| Item[Index] | TTreeNode | 按索引訪問子節點 |
| ItemId | HTreeItem | Windows 原生項目 ID |
| Level | Integer | 層級 (根=0) |
| OverlayIndex | Integer | 疊加圖標索引 |
| Owner | TTreeNodes | 所屬節點集合 |
| Parent | TTreeNode | 父節點 |
| Selected | Boolean | 是否被選中 |
| SelectedIndex | Integer | 選中狀態圖標索引 |
| StateIndex | Integer | 狀態圖標索引 (-1 無) |
| Text | string | 顯示文本 |
| TreeView | TCustomTreeView | 所屬樹控件 |
核心方法
| 方法 | 說明 |
| AlphaSort(ARecurse) | 按文本排序子節點,可遞歸 |
| Assign(Source) | 複製屬性 (不含子節點) |
| Collapse(Recurse) | 折疊,可遞歸折疊子孫 |
| CustomSort(SortProc, Data, ARecurse) | 自定義比較函數排序 |
| Delete | 刪除自身及所有子孫 |
| DeleteChildren | 僅刪除子節點 |
| DisplayRect(TextOnly) | 獲取顯示矩形 |
| EndEdit(Cancel) | 結束編輯模式 |
| Expand(Recurse) | 展開,可遞歸展開子孫 |
| GetFirstChild / GetLastChild | 獲取首/尾子節點 |
| GetNext / GetNextSibling / GetNextVisible | 遍歷下一節點 (含/不含子孫/可見) |
| GetPrev / GetPrevSibling / GetPrevVisible | 遍歷上一節點 |
| GetNextChild / GetPrevChild(Value) | 在子列表中查找下/上一個 |
| HasAsParent(Value) | 判斷 Value 是否為祖先 |
| IndexOf(Value) | 子節點在列表中的索引 |
| MakeVisible | 滾動並展開父節點使其可見 |
| MoveTo(Destination, Mode) | 移動節點 (改變父/同級關係) |
遍歷模式速查
nil do
begin
// 處理 Node
Node := Node.GetNextVisible;
end;
end;
{ 遍歷某節點的所有子孫 (遞歸) }
procedure ProcessNode(Node: TTreeNode);
var Child: TTreeNode;
begin
Child := Node.GetFirstChild;
while Child <> nil do
begin
ProcessNode(Child);
Child := Child.GetNextSibling;
end;
end;