projman/hlp/ru/tk/tk_getOpenFile.html

180 lines
11 KiB
HTML
Raw Normal View History

<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
2015-10-19 13:27:31 +03:00
<html>
<head>
<title>tk_getOpenFile</title>
</head>
<body>
<h1>tk_getOpenFile</h1>
<p>Открывает окно диалога, в котором пользователь должен выбрать
файл для того, чтобы открыть его.</p>
2015-10-19 13:27:31 +03:00
<h2><a name=СИНТАКСИС></a>СИНТАКСИС</h2>
2015-10-19 13:27:31 +03:00
<pre>
<strong>tk_getOpenFile</strong> ?<em>параметр значение...</em>?
2015-10-19 13:27:31 +03:00
</pre>
<h2><a name=ОПИСАНИЕ></a>ОПИСАНИЕ</h2>
2015-10-19 13:27:31 +03:00
<p>Процедура <strong>tk_getOpenFile</strong> открывает окно
диалога, в котором пользователь должен выбрать файл для того,
чтобы открыть его. </p>
2015-10-19 13:27:31 +03:00
<p>Команда <strong>tk_getOpenFile</strong> обычно выполняется при
вызове команды <strong>Open</strong> из меню
<strong>File</strong>. Она позволяет лишь выбрать один из
существующих файлов. Если пользователь вводит имя
несуществующего файла, то окно диалога информирует его об ошибке
и предлагает сделать другой выбор. Если приложение позволяет
пользователю создавать файлы, то для этой цели должна быть
предназначена специальная команда меню <strong>New</strong>.</p>
2015-10-19 13:27:31 +03:00
<p>В качестве пар <em>аргумент-значение</em> в командной строке
этих двух команд допускаются следующие варианты:</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><strong>-defaultextension</strong> <em>расширение</em></dt>
<dd>Задает строку, которая автоматически приписывается к имени
файла в случае, если имя, введенное пользователем, не имеет
расширения. По умолчанию значение этого параметра пустая
строка, т.е. имя файла не будет получать расширения ни в каком
случае. На платформе Макинтош, где имена файлов не требуют
расширения, этот параметр игнорируется.</dd>
<dt><strong>-filetypes</strong> <em>списокТиповФайлов</em></dt>
<dd>Если в файловом диалоге на конкретной платформе имеется окно
списка типов файлов, то этот параметр задает содержимое
списка. При выборе типа файла в списке выводятся только файлы
этого типа. Если параметр не задан или его значение пустая
строка, а также если на данной платформе не поддерживается
окно списка типов файлов, то выводятся имена всех файлов,
несмотря на их типы. Содержимое списка обсуждается ниже
(см. &quot;<a href=#ОПИСАНИЕ_ОБРАЗЦОВ_ТИПОВАЙЛОВ>ОПИСАНИЕ
ОБРАЗЦОВ ТИПОВ ФАЙЛОВ</a>&quot;).</dd>
<dt><strong>-initialdir</strong> <em>каталог</em></dt>
<dd>Указывает, файлы какого каталога должны выводиться при
появлении окна диалога. Если этот параметр не задан, то
выводится список имен файлов в текущем каталоге процесса. На
платформе Макинтош параметр <em>каталог</em> срабатывает не
всегда. Это не результат ошибки. Этот эффект является
следствием того, что панель управления General Controls на
Макинтоше позволяет конечному пользователю подавить значение
каталога приложения по умолчанию.</dd>
<dt><strong>-initialfile</strong> <em>имяфайла</em></dt>
<dd>Задает имя файла, которое должно выводиться в окне диалога
при его появлении.</dd>
<dt><strong>-parent</strong> <em>окно</em></dt>
<dd>Делает <em>окно</em> логическим родителем файлового
диалога. Окно файлового диалога выводится поверх родительского
<em>окна</em>.</dd>
<dt><strong>-title</strong> <em>строкаЗаголовка</em></dt>
<dd>Задает строку, которая выводится в качестве заголовка в окне
диалога. Если параметр не задан, то в окне выводится заголовок
по умолчанию. На платформе Макинтош параметр игнорируется.</dd>
2015-10-19 13:27:31 +03:00
</dl>
<p>После того, как пользователь выбрал файл, команда
<strong>tk_getSaveFile</strong> возвращают полное имя пути к этому
файлу. Если пользователь прерывает выполнение операции, то обе
команды возвращают пустую строку.</p>
2015-10-19 13:27:31 +03:00
<h2><a name=ОПИСАНИЕ_ОБРАЗЦОВ_ТИПОВАЙЛОВ></a>ОПИСАНИЕ ОБРАЗЦОВ
ТИПОВ ФАЙЛОВ</h2>
2015-10-19 13:27:31 +03:00
<p>Значение <em>списокТиповФайлов</em> параметра
<strong>-filetypes</strong> представляет собой список образцов
типов файлов. Каждый из образцов это список вида
2015-10-19 13:27:31 +03:00
<pre>
имяТипа {расширение расширение...} {макТип макТип...}
2015-10-19 13:27:31 +03:00
</pre>
<p><em>имяТипа</em> это имя типа файлов; его значение это
текстовая строка, которая попадает в список типов
файлов. расширение это одно из расширений для файлов данного
типа. <em>макТип</em> это четырехсимвольный тип файлов на
платформе Макинтош. Список <em>макТипов</em> необязателен, и для
приложений, которые не планируется использовать на платформе
Макинтош, его можно опустить.</p>
<p>Одно и то же <em>имяТипа</em> может встречаться в нескольких
образцах; в этом случае все они описывают файлы одного типа и им
соответствует одна строка в списке типов. При выборе такой
строки в списке выводится список всех файлов, имена которых
подходят хотя бы под один образец. Обычно каждому типу файлов
соответствует в точности один образец. Использование нескольких
образцов необходимо лишь для платформы Макинтош.</p>
<p>На платформе Макинтош файл подходит под образец, если
расширение его имени совпадает по крайней мере с одним из
расширений И оно имеется по крайней мере в одном из значений
параметра <em>макТип</em> в образце. Например, под образец
исходных файлов на языке C подходят файлы с расширением
<em>.c</em> И с макТипом <em>TEXT</em>. Для того, чтобы заменить
конъюнкцию И дизъюнкцией <em>ИЛИ</em>, нужно вместо одной строки
образца завести две строки, в одной из которых есть только
расширения, а в другой только <em>макТипы</em>. Под образец
файлового типа <em>GIF</em> подходят файлы с расширением
<em>.gif</em> ИЛИ имеющие <em>макТип</em> GIFF.</p>
<p>На платформах Unix и Windows файл подходит под образец
файлового типа, если расширение его имени соответствует одному
из расширений в образце. <em>макТип</em>ы игнорируются.</p>
<h2><a name=ЗАДАНИЕ_РАСШИРЕНИЙ></a>ЗАДАНИЕ РАСШИРЕНИЙ</h2>
<p>На платформах Unix и Macintosh соответствие образцам
устанавливается обычным образом. На платформах Windows
соответствие образцам устанавливается операционной
системой. Возможными расширениями могут быть:</p>
2015-10-19 13:27:31 +03:00
<ol>
<li>специальное расширение *, под которое подходит любой файл;</li>
2015-10-19 13:27:31 +03:00
<li>специальное расширение &quot;&quot;, под которое подходит
любой файл без расширения (т.е. файл, имя которого не содержит
точки);</li>
2015-10-19 13:27:31 +03:00
<li>произвольная строка символов, среди которых нет символов
маски (* и ?).</li>
2015-10-19 13:27:31 +03:00
</ol>
<p>Ввиду того, что на различных платформах используются различные
правила соответствия, появление символов маски в расширениях не
допускается, за исключением специального расширения
&quot;*&quot;. Расширения, в которых нет точки (например,
&quot;~&quot;), допустимы, но они могут работать не на всех
платформах.</p>
2015-10-19 13:27:31 +03:00
<h2><a name=ПРИМЕР></a>ПРИМЕР</h2>
2015-10-19 13:27:31 +03:00
<pre>
set types {
{{Text Files} {.txt} }
{{TCL Scripts} {.tcl} }
{{C Source Files} {.c} TEXT}
{{GIF Files} {.gif} }
{{GIF Files} {} GIFF}
{{All Files} * }
}
set filename [tk_getOpenFile -filetypes ]
if { != &quot;&quot;} {
# Открыть файл ...
2015-10-19 13:27:31 +03:00
}
</pre>
</body>
</html>