Code: var FXMLDocument: TXMLDocument; //... CoInitialize(nil); FXMLDocument := TXMLDocument.Create(ParseThread.Account.PatternFileName); FXMLDocument.Active := True; //... var NodeList: IXMLNodeList; DocNode: IXMLDocument; begin DocNode := IXMLDocument(FXMLDocument);// иначе "Invalid pointer operation" //DocNode.DocumentElement.ChildNodes.Count = 1 !!! NodeList := DocNode.DocumentElement.ChildNodes[0].ChildNodes; //Error: "Expression illegal in evaluator" почему так?
Короч проблему детальнее надо описывать, расписать чтоб мозг помогающих не летал в астрале в поисках модели ситуации. А что зн. иначе? Ты туда nil пихал?
иначе это так: NodeList := FXMLDocument.DocumentElement.ChildNodes[0].ChildNodes; проблема в том что выдаёт ошибку при DocNode.DocumentElement.ChildNodes[0].ChildNodes хотя DocNode.DocumentElement.ChildNodes.Count = 1 (т. е. список не пуст) точно также при DocNode.ChildNodes[0].ChildNodes
тепер ошибка на Code: FXMLDocument.Free; на Code: TObject(FXMLDocument).Free; также... Invalid Poiter Operation...
нашол обшыбку... у меня же уничтожается последняя копия интерфейса при выходе из процедуры и соотвествено уничтожается объект)