| Цитата(altarasjuk @ 29.5.2003, 17:20) | А этот TXMLDocument, как я понял очень глюкавый: В одном случае код работает, в другом - нет(access voilation) sad.gif |
Ошибка не будет выскакивать, если в конструкторе в качестве параметра задавать не nil, а объект, унаследованный от TComponent. Но я так до сих пор, если честно, так и не понял, с чем это связано, и в исходниках смотрел и читал хелпы... фантастика какая-то
Вот интересно, смотрим XMLDoc.pas:
| Код | TXMLDocument = class(TComponent, IInterface, IXMLDocument, IXMLDocumentAccess) private public .... constructor Create(AOwner: TComponent); overload; override; constructor Create(const AFileName: DOMString); reintroduce; overload;
|
реализация значит следующая:
| Код | constructor TXMLDocument.Create(AOwner: TComponent); begin { Need to have this to make this constructor visible to C++ classes } inherited; end;
constructor TXMLDocument.Create(const AFileName: DOMString); begin inherited Create(nil); FFileName := AFileName; end;
|
Получается, что при использовании constructor TXMLDocument.Create(const AFileName: DOMString); мы автоматически обрекаем себя на ошибки. Вот такая вот музыка, вот такая блин, вечная молодость.... |