Вверх ↑
Ответов: 2125
Рейтинг: 159
#1: 2006-11-04 23:41:06 ЛС | профиль | цитата
Первая и третья кнопка запускают скрипт в том же Thread, что и само приложение, а вот вторая - непосредственно в новом Thread-е и вот тут чего-то нехватает. Сама по себе Script Engine может работать в нескольких Thread-ах, тут надо глубже копаться.

З.Ы. IActiveScript::GetScriptDispatch почему-то возвращает nil. Возможно потому, что скрипт создаётся в одном Thread-е, а используется в другом. Если добавить анализ возвращаемого значения - ошибка не возникает, но и скрипт, естесственно, не вызывается
procedure THIVBJScript._DoWork;
var Disp:IDispatch; dt,idx:TVariantArg;
begin
if FEngine = nil then Exit;
FEngine.GetScriptDispatch(nil, Disp);
if Disp = nil then Exit;
карма: 1

0