看到一段文字是关于treeview的,有几句在程序中不可以通过。
无限树型.看看罗,我调试通过了!
先定义
PNodeInfo=^TNodeInfo; //指针类型,存储对应节点信息
TNodeInfo=Packed Record
//以上两句有问题,在编译不通过,我从没见过这样定以数据类型或变量的
NodeId:String; //节点
NodeName:string; //节点名称
ParentId:string; //父节点
end;定义函数procedure Tform.CreateTree(Id: integer;ParentNode:TTreeNode);
var
QryTmp:TSQLQuery;
MyNode:TTreeNode;
TmpNodeInfo:PNodeInfo;
begin
QryTmp:=TSQLQuery.Create(self);
QryTmp.SQLConnection:=SQLConnection;
QryTmp.SQL.Add('Select Nodeid,Parentid,Nodename From Policy_tree Where ParentId='+IntToStr(Id)+' Order by NodeId');
QryTmp.Open;
MyNode:=nil;
while not QryTmp.Eof do
begin
New(TmpNodeInfo);
TmpNodeInfo.Nodeid:=Trim(QryTmp.Fields[0].AsString);
TmpNodeInfo.Parentid:=Trim(QryTmp.Fields[1].AsString);
TmpNodeInfo.Nodename:=Trim(QryTmp.Fields[2].AsString);
MyNode:=TView.Items.AddChildObject(ParentNode,QryTmp.Fields[2].AsString,TmpNodeInfo); //把所有节点当作子节点遍历
CreateTree(QryTmp.Fields[0].AsInteger,MyNode); //递归调用
QryTmp.Next;
end;
QryTmp.Free;
end;调用
//显示树型
CreateTree(0,nil);
无限树型.看看罗,我调试通过了!
先定义
PNodeInfo=^TNodeInfo; //指针类型,存储对应节点信息
TNodeInfo=Packed Record
//以上两句有问题,在编译不通过,我从没见过这样定以数据类型或变量的
NodeId:String; //节点
NodeName:string; //节点名称
ParentId:string; //父节点
end;定义函数procedure Tform.CreateTree(Id: integer;ParentNode:TTreeNode);
var
QryTmp:TSQLQuery;
MyNode:TTreeNode;
TmpNodeInfo:PNodeInfo;
begin
QryTmp:=TSQLQuery.Create(self);
QryTmp.SQLConnection:=SQLConnection;
QryTmp.SQL.Add('Select Nodeid,Parentid,Nodename From Policy_tree Where ParentId='+IntToStr(Id)+' Order by NodeId');
QryTmp.Open;
MyNode:=nil;
while not QryTmp.Eof do
begin
New(TmpNodeInfo);
TmpNodeInfo.Nodeid:=Trim(QryTmp.Fields[0].AsString);
TmpNodeInfo.Parentid:=Trim(QryTmp.Fields[1].AsString);
TmpNodeInfo.Nodename:=Trim(QryTmp.Fields[2].AsString);
MyNode:=TView.Items.AddChildObject(ParentNode,QryTmp.Fields[2].AsString,TmpNodeInfo); //把所有节点当作子节点遍历
CreateTree(QryTmp.Fields[0].AsInteger,MyNode); //递归调用
QryTmp.Next;
end;
QryTmp.Free;
end;调用
//显示树型
CreateTree(0,nil);
解决方案 »
- 如何读项目代码
- 使用TActionList控件,将TAction(ActionList.Action[0].Caption)赋给一string变量时,string变量变成了乱码
- 求:李维《inside vcl》的电子书
- 急。更改了DBCombox的数据(连接到DataSource1,DataSource1.dataset=adoquery),结果adoquery.post的时候
- 请问那里有象QQ一样的控件下载呀,谢谢,给分30
- 有在广州天河软件园的朋友吗?我马上要去那里工作了。
- YY语音(程序员交流频道 您愿意加入么?)
- 如何求线是否在平面内?付费,加2805728933
- delphi6,ShowWindow(handle,SW_HIDE)怎么无效????奇怪呀!
- 有没有报表高手,一个报表奇怪的问题
- 内存访问的问题
- 请问如何控制com服务与HttpSrvr的启动与停止?
Type:
PNodeInfo=^TNodeInfo; //指针类型,存储对应节点信息
TNodeInfo=Packed Record
//以上两句有问题,在编译不通过,我从没见过这样定以数据类型或变量的
NodeId:String; //节点
NodeName:string; //节点名称
ParentId:string; //父节点
end; Tform1=class(Tform)
...
PNodeInfo=^TNodeInfo; //指针类型,存储对应节点信息
TNodeInfo=Packed Record
//以上两句有问题,在编译不通过,我从没见过这样定以数据类型或变量的
NodeId:String; //节点
NodeName:string; //节点名称
ParentId:string; //父节点
end;定义函数procedure Tform.CreateTree(Id: integer;ParentNode:TTreeNode);
var
QryTmp:TSQLQuery;
MyNode:TTreeNode;
TmpNodeInfo:PNodeInfo;
begin
QryTmp:=TSQLQuery.Create(self);
QryTmp.SQLConnection:=SQLConnection;
QryTmp.SQL.Add('Select Nodeid,Parentid,Nodename From Policy_tree Where ParentId='+IntToStr(Id)+' Order by NodeId');
QryTmp.Open;
MyNode:=nil;
while not QryTmp.Eof do
begin
New(TmpNodeInfo);
TmpNodeInfo.Nodeid:=Trim(QryTmp.Fields[0].AsString);
TmpNodeInfo.Parentid:=Trim(QryTmp.Fields[1].AsString);
TmpNodeInfo.Nodename:=Trim(QryTmp.Fields[2].AsString);
MyNode:=TView.Items.AddChildObject(ParentNode,QryTmp.Fields[2].AsString,TmpNodeInfo); //把所有节点当作子节点遍历
CreateTree(QryTmp.Fields[0].AsInteger,MyNode); //递归调用
QryTmp.Next;
end;
QryTmp.Free;
end;调用
//显示树型
CreateTree(0,nil);能通过的呀我的树也是这样做的你在类声明前面要加type的再试吧