CallFunction
function TfsScript.CallFunction(const Name: String; const Params: Variant): Variant;
При использовании данного метода не устанавливается флаг IsRunning - как следствие нельзя определить испольняется ли он , что бы можно было прервать
При выхове TfsScript.Execute - всё корректно
При использовании данного метода не устанавливается флаг IsRunning - как следствие нельзя определить испольняется ли он , что бы можно было прервать
При выхове TfsScript.Execute - всё корректно
Комментарии
Скажем:
MyFuncRunning:=true;
s:=fs.CallFunction('foo',[...]);
MyFuncRunning:=false;
Кстати, это еще вопрос, что вернет прерванная функция...
участок
if VarIsArray(Params) then
for i := 0 to VarArrayHighBound(Params, 1) do
p.Params.Value := Params;
Result := p.Value;
end;
Заменил на
if VarIsArray(Params) then
for i := 0 to VarArrayHighBound(Params, 1) do
p.Params.Value := Params;
FExitCalled := False;
FTerminated := False;
FIsRunning := True;
FMainProg := True;
try
Result := p.Value;
finally
FExitCalled := False;
FTerminated := False;
FIsRunning := False;
end;
Всё стало работать
Накипело просто.