![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TXMLDocument в RUNTIME [D2005, XP]
Димон © (2008-05-24 13:26:00)Помогите разобраться ... Когда бросаю компонент TXMLDocument на форму и выполняю эту функцию, функция отрабатывает нормально. Когда убираю компонент из формы и создаю его в ручную, через XMLDoc := TXMLDocument.Create(nil) - То функция отрабатывает с ошибками ...
Ошибка при чтении записей ...
function fFinde (Value : WideString) : WideString;
Var
i:integer;
XMLDoc : TXMLDocument;
begin
try
XMLDoc := TXMLDocument.Create(nil);
XMLDoc.LoadFromFile('C:\1.xml');
XMLDoc.Active := True;
for i := 0 to XMLDoc.ChildNodes['Records'].ChildNodes.Count - 1 do
begin
ShowMessage(XMLDoc.ChildNodes['Records'].ChildNodes[i].ChildNodes['Item'].Text);
end;
finally
XMLDoc.Free;
end;
end;
Reindeer Moss Eater (2008-05-24 14:37:00) [61]Хелп читать надо, вот что надо делать.
Если в конструктор передан нил то возвращается чисто интерфейсная ссылка а не объектная. И фри ей делать не надо.
Димон (2008-05-24 14:20:00) [62]Да вы правы, я позже понял что владельца я немогу передавать .. Сейчас сижу не знаю что делать, читаю хелп но ничего не догоняю.
sniknik (2008-05-24 14:18:00) [63]> Да, 2 конструктора .. В моем случаи оба не работают ...
не может такого быть. может ты им зарплату не платишь? вот и не хотят работать. так и говорят - "не хотим работать"?
(судя по всему про написанное про ошибки было проигнорировано)
> Понял, XMLDoc := TXMLDocument.Create(Self);
> Проблема решена ... ))
хм... а от чего Self то? ->
> function <????.>fFinde (Value : WideString) : WideString;
нету.
я то как раз думал, что цель работать без владельца, т.к. это "чистая" функция а не метод класса.
Димон (2008-05-24 14:07:00) [64]Понял, XMLDoc := TXMLDocument.Create(Self);
Проблема решена ... ))
Плохиш (2008-05-24 13:57:00) [65]
> Димон (24.05.08 13:56) [2]
> Да, 2 конструктора .. В моем случаи оба не работают
тебе не повезло...
Плохиш (2008-05-24 13:56:00) [66]
> XMLDoc.LoadFromFile('C:\1.xml');
> XMLDoc.Active := True;
Советую всё-таки прочитать справку по LoadFromFile.
Димон (2008-05-24 13:56:00) [67]Да, 2 конструктора .. В моем случаи оба не работают ...
sniknik (2008-05-24 13:46:00) [68]> То функция отрабатывает с ошибками ...
ошибки они не просто так, в них обычно бывает указание чего неправильно/нехватает.
> XMLDoc := TXMLDocument.Create(nil);
посмотри исходники компонента, там 2 конструктора, причем второй введен для возможности создать компонент с владельцем = nil... (имхо, но по моему там это все очевидно)