procedure BuildTree(TreeView: TTreeView; DataSet: TDataSet;
KeyField, ParentField, TitleField: string);
{ 高效建树过程 by blazingfire 2008-05-21 }
type
PNodeData = ^TNodeData;
TNodeData = record
Key: Integer;
Parent: Integer;
Title: string;
Node: TTreeNode;
end;
function CompareKey(Item1, Item2: Pointer): Integer;
begin
Result := PNodeData(Item1)^.Key - PNodeData(Item2)^.Key;
end;
function BisearchNodeData(Key: Integer; SortedList: TList): PNodeData;
var
Lo, Hi, Mid: Integer;
begin
Lo := 0;
Hi := SortedList.Count - 1;
while Lo <= Hi do
begin
Mid := (Lo + Hi) div 2;
Result := SortedList[Mid

本文介绍了一个名为BuildTree的过程,用于从TDataSet数据集中提取数据,并基于KeyField, ParentField和TitleField字段创建树形结构。通过记录类型TNodeData存储数据,利用折半查找算法优化了节点的查找和构建,提高了构建树形结构的效率。"
112898325,10553090,Anaconda中Kite的安装与配置教程,"['anaconda的kite', '数据库管理', '前端开发', '后端开发', '开发工具']
最低0.47元/天 解锁文章
70

被折叠的 条评论
为什么被折叠?



