有人能通俗点讲解什么是递归调用过程吗?实在太难明了

                            
下面的程序是一个treeview根据数据表产生树型结构时的一个函数,这个函数入面又引用自已,我很难理解这种做法,不明白:函数都没有生成就引用自已,有没人能通俗点讲解下,让我明白   
  procedure   TForm1.AddClass(AId:   integer;FatherNode:TTreeNode);  
  var  
          QryTmp:TADOQuery;  
          myNode:TTreeNode;  
          myLabel:TLabel;  
  begin  
          QryTmp:=TADOQuery.Create(self);  
          QryTmp.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data   Source='+extractfilepath(application.ExeName)+'test.mdb;Persist   Security   Info=False';  
          QryTmp.SQL.Add('select   *   from   tb1');  
          QryTmp.SQL.Add('where   FatherId='+inttostr(AId));  
          QryTmp.Open;  
          while   not   QryTmp.Eof   do  
          begin  
                  myNode:=Treeview1.Items.AddChild(FatherNode,QryTmp.fieldbyname('CName').AsString);  
   
                  //创建标签,caption存放各分支的AutoId表识  
                  myLabel:=TLabel.Create(self);  
                  myLabel.Visible:=false;  
                  myLabel.Caption:=QryTmp.fieldbyname('AutoId').AsString;  
                  myNode.Data:=myLabel;  
   
                  AddClass(QryTmp.fieldbyname('AutoId').AsInteger,myNode);   //递归调用过程  
                  QryTmp.Next;  
          end;  
          QryTmp.Free;  
 

查看回复