<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
<html>
  <head>
    <title>after</title>
  </head>
  <body>
    <h1>after</h1>

    <p>Команда <strong>after</strong> указывает, что некоторая команда должна
      быть выполнена с задержкой по времени.</p>

    <pre>
      <a href=#ms><strong>after</strong></a> <em>ms</em> 
      <a href=#ms_script><strong>after</strong></a> <em>ms</em> ?<em>script</em> <em>script</em> <em>script</em>...?
      <a href=#cancel_id><strong>after</strong> <strong>cancel</strong></a> <em>id</em>
      <a href=#cancel_script_script><strong>after</strong> <strong>cancel</strong></a> <em>script</em> <em>script</em> <em>script</em>...
      <a href=#idle><strong>after</strong> <strong>idle</strong></a> ?<em>script</em> <em>script</em> <em>script</em>...?
      <a href=#info><strong>after</strong> <strong>info</strong></a> ?<em>id</em>?
    </pre>

    <h2>ОПИСАНИЕ</h2> 

    <p> Команда используется для того, чтобы отложить выполнение
      программы или выполнить указанную команду в фоновом режиме в
      некоторый момент в будущем. У команды есть несколько форм,
      зависящих от ее первого аргумента.</p>
    <dl>
      <dt><a name=ms></a><strong>after</strong> <em>ms</em></dt>

      <dd> <em>Ms</em> - целое число, задающее задержку в миллисекундах.
        Команда обеспечивает задержку на соответствующее число
        миллисекунд до своего завершения. Во время задержки приложение
        не реагирует на события.
      </dd>

      <dt><a name=ms></a><strong>after</strong> <em>ms</em>
	?<em>script</em> <em>script</em> <em>script</em>...?</dt>

      <dd> В этой форме команда завершается немедленно, но при этом
        она обеспечивает выполнение Tcl-команды <em>script script
        script</em> через соответствующее время. Команда выполняется
        ровно один раз в установленный момент времени. Команда
        формируется объединением всех перечисленных аргументов
        <em>script</em> таким же образом, как при выполнении команды <a
        href=concat.html><strong>concat</strong></a>. Команда выполняется
        на глобальном уровне (вне контекста какой-либо
        Tcl-процедуры). Ошибки во время выполнения команды (если они
        происходят) обрабатываются с помощью процедуры <a
        href=bgerror.html><strong>bgerror</strong></a>. Команда
      <strong>after</strong> в этой форме возвращает идентификатор, который
        может быть использован для отмены отложенной команды с помощью
        команды <strong>after cancel</strong>.
      </dd>

      <dt><a name=cancel_id></a><strong>after</strong> <strong>cancel</strong>
	<em>id</em></dt>

      <dd> Отменяет исполнение ранее заявленной отложенной команды.
        <em>Id</em> определяет, какая именно команда будет отменена.
        Значение <em>id</em> должно совпадать со значением, возвращенным
        предыдущей командой <strong>after</strong>. Если соответствующая команда
        уже выполнена, команда <strong>after cancel</strong> игнорируется.
      </dd>

      <dt><a name=cancel_script_script></a><strong>after</strong>
	<strong>cancel</strong> <em>script</em> <em>script</em>...</dt>

      <dd> Эта команда также отменяет выполнение ранее заявленной
        отложенной команды. Все перечисленные скрипты <em>script</em>
        объединяются через пробел таким же образом, как при выполнении
        команды <a href=concat.html><strong>concat</strong></a>. После
        чего ищется отложенная команда с аналогичным скриптом. Если
        такая команда будет найдена, ее исполнение будет отменено. В
        противном случае команда <strong>after cancel</strong> игнорируется.
      </dd>

      <dt><a name=idle></a><strong>after</strong> <strong>idle</strong> <em>script</em>
	?<em>script</em> <em>script</em>...?</dt>

      <dd> Все перечисленные скрипты объединяются через пробел таким
        же образом, как при выполнении команды <a
        href=concat.html><strong>concat</strong></a>. Сформированная таким
        образом Tcl команда выполняется позже. Она выполняется ровно
        один раз в первом цикле обработчика событий, в котором не
        будет других необработанных событий. Команда <strong>after idle</strong>
        возвращает идентификатор, который может быть использован для
        отмены отложенной команды. Ошибки во время выполнения команды
        (если они происходят) обрабатываются с помощью процедуры <a
        href=bgerror.html><strong>bgerror</strong></a>.
      </dd>
      
      <dt><a name=info></a><strong>after</strong> <strong>info</strong> ?<em>id</em>?</dt>

      <dd> Эта команда используется для получения информации об
        отложенных командах. Если аргумент <em>id</em> отсутствует , то
        возвращает список идентификаторов отложенных команд.  Если
        аргумент <em>id</em> указан и соответствует идентификатору
        отложенной команды, которая не отменена и еще не выполнена,
        возвращается список из двух элементов.  Первый элемент списка
        - Tcl-скрипт соответствующей команды, второй - <strong>idle</strong>
        или <strong>timer</strong> в зависимости от того, по какому событию
        предполагается вызов команды.
      </dd>
    </dl>

    <p>Команды <strong>after ms</strong> и <strong>after idle</strong> предполагают, что
      приложение управляется событиями. Отложенные команды не
      выполняются, если в приложении не активизирован цикл обработки
      событий. В приложениях, в которых он обычно не активизирован,
      таких как <strong>tclsh</strong>, цикл обработки событий может быть
      активизирован с помощью команд <a href=
      vwait.html><strong>vwait</strong></a> и <a href=
      update.htm><strong>update</strong></a>.</p>
  </body>
</html>