Как аварийно прервать выполнение скрипта, не "убивая" приложения?

отредактировано 01:23 Раздел: FastReport 4.0
По разным причинам выполнение скрипта может быть слишком долгим, или просто бесконечным.

Отчет "зависает".

Как аварийно прервать выполнение скрипта, не "убивая" приложения?

Комментарии

  • отредактировано 01:23
    vlad написал: »
    По разным причинам выполнение скрипта может быть слишком долгим, или просто бесконечным.

    Отчет "зависает".

    Как аварийно прервать выполнение скрипта, не "убивая" приложения?
    Script.Terminate;

    Чтобы приложение не висло можно в событии OnRunLine вызывать Application.ProcessMessages для обработки сообщений от системы.
  • отредактировано 01:23
    написал: »
    Script.Terminate;

    Чтобы приложение не висло можно в событии OnRunLine вызывать Application.ProcessMessages для обработки сообщений от системы.

    А как этим воспользоваться?

    К примеру, пользователь вызвал дизайнер, написал где-то в обработчике OnBeforePrint скрипте что-то вроде:

    while true do;

    - и запустил отчет.

    И как ему добраться до Script.Terminate ?
  • отредактировано 01:23
    vlad написал: »
    А как этим воспользоваться?

    К примеру, пользователь вызвал дизайнер, написал где-то в обработчике OnBeforePrint скрипте что-то вроде:

    while true do;

    - и запустил отчет.

    И как ему добраться до Script.Terminate ?
    Конкретно для этой инструкции - никак.
    Тут даже OnRunLine сработает только один раз и зациклится на выполнении выражения.
  • отредактировано 01:23
    Фиговенько. :)

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

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