拖控件使用没问题,但是因为想把功能写的类里在外部调用,就不能拖控件了
type
    xmldocument1:TXMLDocument;
xmldocument1:=TXMLDocument.Create(nil);
    xmldocument1.LoadFromFile(路径+'\\baidudis.XML');
    str := xmldocument1.DocumentElement.ChildNodes[0].Text;//执行到这步程序就停下了,弹出个类似于内存错误的东西

解决方案 »

  1.   


    uses XMLDoc;var
     xmldocument1:TXMLDocument;
    begin
      xmldocument1:=TXMLDocument.Create(nil);
      .......
      xml.free;
    end;
      

  2.   

    xmldocument1:=TXMLDocument.Create(application); 
      

  3.   

    首先TXMLDocument的create的参数不能为nil,如果有界面form,则create(self),如果是无界面单元,可以
    var
      comp:TCompconent;...
    comp:=TCompconent.create(nil);
    xmldocument1:=TXMLDocument.Create(comp); 
    ....
      

  4.   

    LS说的有误b.create(a); 
    表示b的owner(属主)指定为a,b的生命周期由a来管理,a free时就遍历所有属于自己的b、c、d...挨个调用它们的free。这样创建的b对象就无需再关心它的析构问题了。即b无需自己调用free来处理身后事。b.create(nil);
    如果owner指定为nil,b的身后事就要自己负责了。这样做一点问题也没有,而且效率更高,只不过背上了个负累。b需要自己free。