错误提示如下:Exception EAccessViolation in module Wgqp.exe at 0002752A.Access Violation at address 0042752A in module'Wgqp.exe'.Read of address FBC0E9D2。而且每次在程序运行完之后出现。有谁能帮我解决一下?谢谢!

解决方案 »

  1.   

    好的。代码是在网上看到的。
    procedure TFrmInfoM.MakeTree(TreeView:TTreeView);
    var
     Root:TTreeNode;
    begin
     Root:=TreeView.Items.AddFirst(nil,'文档资料');
     MakeFirstLayer(TreeView);
    end;procedure TFrmInfoM.MakeFirstLayer(TreeView:TTreeView);
    var
     Sql:string;
     rs:_Recordset;
     ObjNode:TNodeObject;
     ChildNode:TTreeNode;
     CName:string;
    begin
     Sql:='select distinct CataName from zlInfo';
     rs:=Database.ADOC.Execute(Sql);
     while not rs.EOF do
     begin
      CName:=rs.Fields['CataName'].Value;
      ChildNode:=TreeView.Items.AddChild(TreeView.Items.GetFirstNode,CName);
      ObjNode:=TNodeObject.Create;
      ObjNode.CName:=CName;
      ChildNode.Data:=ObjNode;
      MakeSecondLayer(TreeView,ChildNode);
      rs.MoveNext;
     end;
     rs.Close;
    end;procedure TFrmInfoM.MakeSeCondLayer(TreeView:TTreeView;FatherNode:TTreeNode);
    var
     Sql:&string;
     Rs:_Recordset;
     ObjNode:TNodeObject;
     ChildNode:TTreeNode;
     CName,FName:&string;
    begin
     CName:=TNodeObject(FatherNode.Data).CName;
     Sql:='select distinct Name from zlinfo where cataName="'+trim(CName)+'"';
     Rs:=Database.ADOC.Execute(Sql);
     while not Rs.EOF do
     begin
      FName:=Rs.Fields['Name'].Value;
      ChildNode:=TreeView.Items.AddChild(FatherNode,FName);
      ObjNode.CName:=TNodeObject(FatherNode.Data).CName;
      ObjNode.FName:=FName;
      ChildNode.Data:=ObjNode;
      Rs.MoveNext;
     end;
     Rs.Close;
    end;