这段代码我不懂,能帮我详细解释吗? 写的多好啊。。tmd一句没看懂。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1:function BuildTree(DataSet: TADODataSet; TV: TTreeView; SelfField,SelfName,ParentField:String):boolean;{ 以下子函数为在表中查找第一个PNode=AIndex的记录}//函数不用begin……end?FindKey、FindNext、GetChildNode和BuildMe是BuildTree的子函数,BuildTree的主体部分还没有开始呢,当然不需要有begin...end.代码中最后的注释“//组合部份”后面才是它的主体。2:function FindKey(AIndex: integer; FFirst:boolean): boolean;//AIndex哪来的?FFIRST,又是传递的那的?这些都是函数的参数呀!在后面的代码中有调用代码: if FindKey(index,true) then3:Result:=DataSet.FieldValues[ParentField]=AIndex;//=AINDEX是什么意思?DELPHI怎么有这样的格式?Result 是一个Boolean型的变量,DataSet.FieldValues[ParentField]=AIndex是一个关系运算,其运算结果是Boolean型的,当然可以赋值给Result.这是标准的Pascal语法。4: with DataSet do begin MyNode^.FID :=FieldValues[SelfField]; MyNode^.FBM :=GetBook;//getbook是什么意思?哪里得到的书签? end;注意上面的with Dataset do,所以这句相当于: MyNode^.FBM :=DataSet.GetBook;建议你先好好学一学Object Pascal的语法。 好,轻风,谢谢!也就是说从最后的调用buildme(0,nil)开始,程序开始运行,依次到getchildnode(aindex,anode),递归调用buildme(pnode(node.data)^.fid,node);然后调用getchildnode时执行findkey,findnext对吗?那,如果我想对这颗树的每一接点(即每个记录)进行操作,如进行统计,该怎么做? 怎么都不理我呀?又有不理解procedure BuildMe(AIndex: integer; ANode: TTreeNode); begin BuildMe(PNode(Node.Data)^.FID,Node);//pnode(node.data)是什么意思? …… 以当前节点的FID为Index,当前节点为ANode调用BiuldMe,应该是查找当前节点的子节点并创建子树. 轻风又伤心了:2002-06-04 ____ ____ \ p \ / g / \ l \_/ n / \ a o / \ i s / \ n / \_/ 以当前节点的FID为Index,当前节点为ANode调用BiuldMe,应该是查找当前节点的子节点并创建子树. 轻风的哥哥又伤心了:2002-06-04 ____ ____ \ p \ / g / \ l \_/ n / \ a o / \ i s / \ n / \_/ 高分求算法 关于ShellExecute如何传递参数的问题 〓〓〓如何实现 在点击任务栏窗口,使窗体最小化后隐藏? 急。关于存取图片的问题 如何取得access表的字段属性 再求高速图像旋转代码 如何用函数返回一个动态数组? 快捷方式起始地址的问题??? 请教Dcomconnecion 在windows 2003上的连接问题 有谁可以告诉我如何从指定excel文件读出资料 请问delphi6的几个internet控件问题,谢谢!········:) 如何将一个数据库中查询结果打印出来呀 !
function BuildTree(DataSet: TADODataSet; TV: TTreeView; SelfField,SelfName,ParentField:String):boolean;
{ 以下子函数为在表中查找第一个PNode=AIndex的记录}//函数不用begin……end?
FindKey、FindNext、GetChildNode和BuildMe是BuildTree的子函数,BuildTree的主体部分还没有开始呢,当然不需要有begin...end.代码中最后的注释“//组合部份”后面才是它的主体。
2:
function FindKey(AIndex: integer; FFirst:boolean): boolean;//AIndex哪来的?FFIRST,又是传递的那的?
这些都是函数的参数呀!在后面的代码中有调用代码:
if FindKey(index,true) then
3:
Result:=DataSet.FieldValues[ParentField]=AIndex;//=AINDEX是什么意思?DELPHI怎么有这样的格式?
Result 是一个Boolean型的变量,DataSet.FieldValues[ParentField]=AIndex是一个关系运算,其运算结果是Boolean型的,当然可以赋值给Result.这是标准的Pascal语法。
4:
with DataSet do
begin
MyNode^.FID :=FieldValues[SelfField];
MyNode^.FBM :=GetBook;//getbook是什么意思?哪里得到的书签?
end;
注意上面的with Dataset do,所以这句相当于:
MyNode^.FBM :=DataSet.GetBook;
建议你先好好学一学Object Pascal的语法。
从最后的调用buildme(0,nil)开始,程序开始运行,依次到getchildnode(aindex,anode),递归调用buildme(pnode(node.data)^.fid,node);然后调用getchildnode时执行findkey,findnext
对吗?那,如果我想对这颗树的每一接点(即每个记录)进行操作,如进行统计,该怎么做?
又有不理解
procedure BuildMe(AIndex: integer; ANode: TTreeNode);
begin
BuildMe(PNode(Node.Data)^.FID,Node);//pnode(node.data)是什么意思?
……
____ ____
\ p \ / g /
\ l \_/ n /
\ a o /
\ i s /
\ n /
\_/
____ ____
\ p \ / g /
\ l \_/ n /
\ a o /
\ i s /
\ n /
\_/