Delphi之Virtual Treeview使用心得


DelphiVirtual Treeview使用心得

1.定義節點的數據結構

2.GetNodeDataSize事件 FreeNode事件

3.GetText事件 根據Column來寫多列

4.GetImageIndex事件 同上

5.PaintText事件 自定義TargetCanvas

6.GetPopupMenu事件 設定PopupMenu

7.OnSaveNode和Onloadnode 保存為文件,需要自己實現這二個事件

顯示Header

1.雙擊VST

2.添加Column -> Text屬性

3.Include( VST.Header.Option, hoVisible);

顯示單選、復選框

Include(VST.TreeOptions.MiscOptions,toCheckSupport);

VST.CheckImageKind :=ckXP;

Node.CheckType :=ctCheckBox;//新加節點如果要顯示復選框,一定要指定,默認值ctNone

Node.CheckState=csCheckedNormal;//是否選中狀態

不顯示TreeLine

TreeOption->PaintOptions->toShowTreeLines

添加節點

var

Node: PVirtualNode;

Data: PVSTNode;

Node := VST.AddChild(nil);

Data := VST.GetNodeData(Node);

更新顯示

VST.InvalidateNode(Node);

當前選中的節點

VST.FocusedNode

遍歷

var

Node:PVirtualNode;

Data:PNodeData;

begin

Node:= VST.GetFirst;

while Assigned(Node) do

begin

Data := VST.GetNodeData(Node);

...

Node := VST.GetNext(Node);

end;

節點沒有子節點,但想顯示節點前的展開+符號

Include(Node.States,vsHasChildren);

三態復選框選中級連選擇, Node.CheckType := ctTriStateCheckBox;

選中的三態:未選中csUncheckedNormal,選中csCheckedNormal,子節點選中父節點狀態csMixedNormal

假如以對象而不是記錄的方式來存放數據結構

1.初使化時 VST.NodeDataSize:=4;

2.添加節點 NewNode:= VST.AddChild(ParentNode,Data);

3.獲取節點數據vst.GetNodeData(Node)^ //注意GetNodeData函數獲取的其實是一個指針

4.釋放數據 在OnFreeNode事件中把對象Free掉


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM