Доброго времени суток. Есть такой код:
| Код | CoInitialize(nil) HTML := CoHTMLDocument.Create as IHTMLDocument2; CurrentFile := Files[I]; Synchronize(UpdateProgress); try Content := TStringStream.Create; Content.LoadFromFile(Files[I]); V := VarArrayCreate([0, 0], varVariant); V[0] := Content.DataString; HTML.Write(PSafeArray(TVarData(V).VArray)); <-- Проблема в этой строке finally Content.Free; end;
|
Если этот код выполнять в основном потоке, то проблем нет. Если запихнуть его в другой поток и выполнять параллельно основному, то выпадает сообщение "The page not found, sorry". Сломал голову. Где грабли?
Все, разобрался. Оказывается, это сообщение выдавал JavaScript на странице. Чтобы этого избежать, сделал так:
| Код | CoInitialize(nil) HTML := CoHTMLDocument.Create as IHTMLDocument2; // Добавлена срока ниже FHTML.designMode := 'On'; CurrentFile := Files[I]; Synchronize(UpdateProgress); try Content := TStringStream.Create; Content.LoadFromFile(Files[I]); V := VarArrayCreate([0, 0], varVariant); V[0] := Content.DataString; HTML.Write(PSafeArray(TVarData(V).VArray)); <-- Проблема в этой строке finally Content.Free; end;
|
|