Проблема при вызове "моей" функции из скрипта (delphi 2009)

отредактировано 04:35 Раздел: FastScript
Здравствуйте.

Проблема в том, что при каждом вызове "моей" (одной и той же) функции из скрипта почему-то происходит выделение памяти приложению.
По окончанию выполнения скрипта память не освобождается.

Пример:
#language PascalScript
Var
  i:integer;
BEGIN
  for i:=0 to 25000 do
   begin    
    Application_ProcessMessages; //моя процедура                                             
  end;
END.

Добавление функции в скрипт:
fsScript1.AddMethod('procedure Application_ProcessMessages;', CallMethod_BaseFunc);

function TForm_FS_common.CallMethod_BaseFunc(Instance: TObject; ClassType: TClass;
  const MethodName: String; var Params: Variant): Variant;
begin
  Result:=0;
            
  if WideUpperCase(MethodName) = WideUpperCase('Application_ProcessMessages') then begin
     Application.ProcessMessages;
  end;

end;


Когда выполняется скрипт прикладного назначения с вызовом в цикле (по таблице базы данных) нескольких "моих" функций, происходит очень быстрое "Out of memory".


Прошу помочь советом: как с этим бороться ?


До свидания.
С уважением, roamer.

Комментарии

  • отредактировано September 2013
    roamer написал: »
    Здравствуйте.

    Приношу извинения.
    Источник проблемы найден ("виноват" не FastScript, а мы сами).

    Но попутно выяснился другой нюанс.

    Похоже, что метод:

    fsScript1.AddMethod('...');

    добавляет функцию (процедуру) БЕЗ проверки того, что она уже существует (и добавляет ее каждый раз, как новую)...


    Похоже, что с этим и были связаны проблемы с выделением памяти приложению при выполнении скрипта.



    До свидания.С уважением, roamer.

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

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