with и OLE

отредактировано 19:57 Раздел: FastScript
Если в скрипте использовать with например XML

var
Xml: Variant;

begin
Xml := CreateOleObject('Microsoft.XmlDom');
Xml.appendChild(Xml.createElement('ROOT'));
with Xml.documentElement do
appendChild(Xml.createElement('CHILD'));
ShowMessage(Xml.xml);
Xml := nil;
ShowMessage('End');
end.

OLE - не убивается проверено на своих OLE обьектах
достаточно даже сделать такое :

var
Xml: Variant;

begin
Xml := CreateOleObject('Microsoft.XmlDom');
Xml.appendChild(Xml.createElement('ROOT'));
ShowMessage(Xml.xml);
Xml := nil;
ShowMessage('End');
end.

Как только используется ShowMessage опять не удаляется

Комментарии

  • отредактировано 19:57
    Ситуация даже веселее, как только я обращаюсь к каким то подэлементам XML всё - не удаляется обьект

    var
    i, j: Integer;
    Xml: Variant;

    begin
    Xml := CreateOleObject('Microsoft.XmlDom');
    Xml.appendChild(Xml.createElement('ROOT'));

    for i := 0 to 1000 do
    begin
    Xml.documentElement.appendChild(Xml.createElement(Format('CHILD_%d', )));
    for j := 0 to 100 do
    Xml.documentElement.childNodes.items.setAttribute(Format('ATTRIBUTE_%d', [j]), j);
    end;
    Xml.LoadXML('');
    Xml := nil;
    ShowMessage('End');
    end.

    Ни коем образом не освобождается оперативка

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.