TreeView由節(jié)點(diǎn)構(gòu)成,建樹通過對TreeView.items屬性進(jìn)行操作。Items是一個TTreeNodes對象,這是一個TTreeNode集。通過它能夠方便地管理和顯示具有層次結(jié)構(gòu)的信息,是Windows應(yīng)用程序的基本控件之一。DELPHI雖然具有比較強(qiáng)大的文件管理功能,提供了多個用于文件管理的標(biāo)準(zhǔn)控件,如DriveComboBox、DirectoryListBox、FileListBox等,通過設(shè)置它們的屬性,使其建立起聯(lián)系,甚至不用編寫一行程序,我們就可以實(shí)現(xiàn)在不同的目錄之間進(jìn)行切換,然而這樣的目錄切換只適用于進(jìn)行文件的查找定位,而不能方便地進(jìn)行目錄的瀏覽,例如我們要從c:\windows目錄轉(zhuǎn)到c:\program files目錄,就必須返回到根目錄才能進(jìn)行切換,而不能象Windows資源管理器那樣任意地在不同的目錄之間進(jìn)行瀏覽與切換。
Delphi TreeView怎么用
Delphi TreeView使用方法
一、針對TTreeNodes,也就是 TreeView.Items,有這些屬性:
1、count,節(jié)點(diǎn)個數(shù)。
2、item[index] ,通過index得到節(jié)點(diǎn)。
二、針對TTreeNodes,也就是 TreeView.Items,常用的添加節(jié)點(diǎn)的操作有:
AddFirst添加第一個根節(jié)點(diǎn)。由此函數(shù)添加的節(jié)點(diǎn)總排在前面,除非后來又使用此函數(shù)添加了一個節(jié)點(diǎn),則后添加的節(jié)點(diǎn)將排在前面。該函數(shù)返回新添加的節(jié)點(diǎn)。
AddChildFirst添加第一個子節(jié)點(diǎn),要求有父節(jié)點(diǎn)作為其參數(shù)。返回新添加的節(jié)點(diǎn)。
AddChild添加一個子節(jié)點(diǎn),要求有父節(jié)點(diǎn)作為其參數(shù)。返回新添加的節(jié)點(diǎn)。
Add添加一個兄弟節(jié)點(diǎn),要求有兄弟節(jié)點(diǎn)作為其參數(shù)。返回新添加的節(jié)點(diǎn)。
三、針對TTreeNodes,也就是 TreeView.Items,常用的得到節(jié)點(diǎn)的操作有:
GetFirstNode() 得到根節(jié)點(diǎn)。然后配合TTreeNode.GetNext(),就可以訪問所有的節(jié)點(diǎn)。
四、建樹舉例:
var
root_node,cur_node:TTreeNode;
begin
root_node:=AddFirst(nil,根節(jié)點(diǎn)1);
cur_node:=addChildfirst(root_node,nil,根節(jié)點(diǎn)1_child1);
add(cur_node,根節(jié)點(diǎn)1_child2);
root_node:=Add(nil,根節(jié)點(diǎn)2);
AddChildFirst(root_node,根節(jié)點(diǎn)2_child1);
end;
五、事件觸發(fā):
當(dāng)從一個節(jié)點(diǎn)跳到另一個節(jié)點(diǎn),會觸發(fā)TTreeView.OnChange事件。該事件中,將傳遞node,即當(dāng)前被選中的節(jié)點(diǎn)。
當(dāng)修改一個節(jié)點(diǎn)的text時(shí),會觸發(fā)TTreeView.onEdit事件。
六、將節(jié)點(diǎn)和節(jié)點(diǎn)所對應(yīng)的數(shù)據(jù)聯(lián)系起來
對于每個TTreeNode,有個Data屬性,可以存放一個指針。我們可以利用這個域來存放與節(jié)點(diǎn)對應(yīng)的自己的數(shù)據(jù)。
1.我們先定義一個數(shù)據(jù)結(jié)構(gòu),作為記錄我們要記錄的數(shù)據(jù)。如:
type PMyData=^TMyData;
TMyData=Record
sFName:string;
sLName:String;
nIndex:integer;
end;
2.然后,創(chuàng)建數(shù)時(shí),將節(jié)點(diǎn)和節(jié)點(diǎn)數(shù)據(jù)聯(lián)系起來:
procedure TForm1.Button1Click(Sender: TObject);
var
myshuju: PMyData
cur_node:TTreeNode;
begin
New(myshuju); //記住,一定要先分配內(nèi)存。有幾個節(jié)點(diǎn),就要分配幾次內(nèi)存。
myshuju^.FName:=Edit1.Text;
Myshuju^.LName := Edit2.Text;
TreeViewIndex := StrToInt(Edit3.Text);
with TreeView1 do
begin
cur_node:=items.AddFirst(nil,first);
cur_node.data:=myshuju;
end;
end;
3.當(dāng)我們選中一個節(jié)點(diǎn)時(shí),就可以使用我們的數(shù)據(jù)了。
procedure TForm1.TreeView1Change(Sender:TObject;Node:TTreeNode);
begin
if node.data<>nil then
self.label1.caption:=pmyData(node.data)^.Fname+pmyData(node.data)^.Lname
end;
4.內(nèi)存釋放
procedure TForm1.ListView1Deletion(Sender: TObject; Item: TListItem);
begin
Dispose(Item.Data);
end;
七、一般使用流程:
1、添加全局變量:
b_first:boolean; //記錄是否是第一次訪問節(jié)點(diǎn),因?yàn)榇藭r(shí)數(shù)據(jù)還未準(zhǔn)備好,而一旦訪問節(jié)點(diǎn)就會觸發(fā)OnChange事件,在此事件處理函數(shù)中也許會出錯。
2、在FormCreate中,
a、設(shè)置b_first:=true;
b. 創(chuàng)建數(shù)并將節(jié)點(diǎn)與數(shù)據(jù)聯(lián)系。
3、在FormShow中設(shè)置b_first:=false;
4.在事件OnChange中處理節(jié)點(diǎn)被選中事件。
5.在Edit中處理節(jié)點(diǎn)被修改Text事件。并調(diào)用OnChange.
6.在 TreeView.Destory中 釋放Data 中指向的內(nèi)存空間。
- PC官方版
-
delphi7(Borland Delphi 7 企業(yè)版)7.0 Build 8.1 中文注冊安裝版(附序列號)
delphi2009(RAD Studio 2009)12.0.3170.16989 破解安裝完美版
delphi2007(RAD Studio 2007)11.0.2902.10471 官方版+破解補(bǔ)丁
Borland Delphi 8.0 光盤版(單純的for .NET版本)
delphi 2007 for phpV2.0英文特別版
Delphi5安裝版(Borland Delphi Enterprise 5)【附序列號+安裝教程】
- 安卓官方手機(jī)版
-
Delphi組件開發(fā)者指南( Delphi組件編寫者指南)pdf格式(中文版/帶書簽)
- IOS官方手機(jī)版














Apifox(Api調(diào)試管理工具)2.1.29.1 綠色版
小烏龜代碼管理工具(TortoiseGit)2.13.0.1 中文免費(fèi)版
SoapUI破解版5.7.0 最新版
小皮面板(phpstudy)8.1.1.3 官方最新版
Ruby3.0(ruby運(yùn)行環(huán)境)3.0.2 官方版
gcc編譯器( MinGW-w64 9.0.0綠色版)免費(fèi)下載
寶玉編輯助手0.0.05新版
火花編程軟件2.7.2 官方pc版
猿編程少兒班客戶端3.1.1 官方版
Restorator 2009中文版單文件漢化版
十六進(jìn)制閱讀小工具
IT碼農(nóng)工具軟件1.0 中文免費(fèi)版
Postman Canary(網(wǎng)頁調(diào)試軟件)官方版7.32.0綠色免費(fèi)版
大耳猴少兒編程客戶端1.1.2 官方免費(fèi)版
excel批量sql語句(通過excel構(gòu)建sql工具)1.0 免費(fèi)版
軟件添加彈窗和網(wǎng)址工具1.0 中文免費(fèi)版
天霸編程助手2.1 單文件中文版
ida pro 中文破解版(反編譯工具)7.0 永樂漢化版64位
VBA代碼助手3.3.3.1官方版
JDK 12 linux版for 64位
Samba(完全支持Python 3)4.10 官方最新版
猿編程電腦端3.9.1.347 官方PC版
蒲公英 Android SDKV4.1.11 官方最新版
蒲公英iOS SDK2.8.9.1 官方最新版
WxPython中文可視化編輯器1.2 簡體中文免費(fèi)版
Python代碼生成器1.0 中文免費(fèi)版
C語言代碼實(shí)例助手1.0 免費(fèi)版
notepad++7.8.2 中文免費(fèi)版




系統(tǒng)自帶的命令行幫助文件(ntcmds.chm)chm格
Excel轉(zhuǎn)換XML工具1.0 免費(fèi)版
實(shí)體類SQL生成工具1.0 綠色免費(fèi)版
XML字符串解析工具2.0.3 免費(fèi)版
VC++Spelly(代碼拼寫檢查)3.0.1 官方最新版
易語言vc6迷你連接器【dos命令形式運(yùn)行】綠
Elastix 20163.0 免費(fèi)版
sql語法分析器(sql語法分析工具)3.1.0 綠色
dev c++下載(DEV-C++)5.9.2 多語安裝免費(fèi)版
vc字體設(shè)置工具(vc6字體設(shè)置工具)1.0 中文綠