注一个子节点都比他的父节点多两位。
比如A这个节点的特正码是'00'他的第一个字节点就是'0000'第二个字节点就是'0001'q我现在是给选一个节点后统计他的子节点个数。我的问题是为什么我的I2没有进行计数。怎么都是0阿。
if tvarea.Selected<>nil then
begin
s1:=tvarea.Selected.Text;
// tvarea.Items.AddChild(tvarea.Selected,edit1.Text);
i2:=0; //选择一个节点的时候就给I2清0
while not qget3.Eof do //找他的父节点
begin
s2:=qget3.fieldbyname('sname').asstring;
if s2=s1 then
begin
path1:=qget3.fieldbyname('spath').asstring; //取出父节点的特征码
while not qget5.eof do
begin
if path1=copy(path2,0,length(qget5.fieldbyname('spath').asstring)-2) then//查找父节点下有多少个字节点
i2:=i2+1;
qget5.Next;
end; edit1.Text:=inttostr(i2);
end;
qget3.Next;
qget5.First;
end;
end;
解决方案 »
- 在QUICKREP中如何设置自动增加的序号
- 麻烦懂C++跟Delphi的高手看一下下面的C++代码用Delphi该怎么写
- 怎样移位?
- dbgrid 移动行 100分够吗
- 有没有书对DELPHI中的基本控件做详细说明的,控件的属性、方法、事件等,电子和非电子的都可以
- 急!!! 关于scktsrvr.exe在客户端的安装问题!! 在线等待!!!!!
- 请问
- 怎么让DBgrid中title上面的字靠中间对齐?(在线)
- 如何将prn文件打印到一台网络打印机上???
- 用ADO打开一个名为current的SQL SERVER表,却出现“在current附近有语法错误”的错误,其他表却没问题。
- 关于存储过程,请教!
- 在Delphi 8中出现的错误(initialize the Borland Database Engine)该怎么办哦?
i2:=i2+1;
path2有初值吗?跟踪一下,看看各个变量的值是否是预期的。
PATH2的就是path2:=copy(qget5.fieldbyname('spath').asstring,0,length(qget5.fieldbyname('spath').asstring)-2);
我现在传了。还是一样的问题。
把while not qget5.eof do
begin
if path1=copy(path2,0,length(qget5.fieldbyname('spath').asstring)-2) then//式改成了 while not qget5.eof do
begin
path2:=copy(qget5.fieldbyname('spath').asstring,0,length(qget5.fieldbyname('spath').asstring)-2);
if path1=path2 then//查找父节点下有多少个字节点
i2:=i2+1;
qget5.Next;