projman/hlp/ru/tcl/after.html
2018-02-05 17:23:37 +03:00

117 lines
8.0 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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>