Описание |
TOpenDialog - визуальный компонент. Он используется, чтобы позволить пользователю выбирать один или более файлов, для открытия.
Он может быть определен, перемещением значка Open Dialog с вкладки Dialogs, или определяя переменную TOpenDialog.
TOpenDialog может быть сконфигурирован для удовлетворения ваших потребности. При его использовании вы будете проходить через следующие шаги:
Создание объекта диалога
Вы определяете переменную TOpenDialog, затем присваиваете ей новый объект TOpenDialog:
var
openDialog : TOpenDialog;
begin
openDialog := TOpenDialog.Create(self);
Обратите внимание, что диалог должен иметь хозяина, в данном примере текущий объект мы снабжаем - self - как самостоятельный.
Установка опций
Перед отображением диалога, вы, вероятно, конфигурируете его по своим потребностям, устанавливая свойства диалога. Вот его основные свойства:
Свойство Title
Используется для установки заголовка диалога.
Свойство FileName
Выдает имя файла для открытия, заданное по умолчанию. (Иначе, поле имени файла будет пробелом). При возвращении из диалога, если пользователь нажал, OK, это свойство будет содержать (первое) выбранное имя файла, включая его полный путь (см. первый пример).
Свойство Filter
Оно позволяет отображать и выбирать только некоторые типы файлов. Текст фильтра отображается в ниспадающем поле, чуть ниже поля имени файла. Следующий пример выбирает только текстовые файлы:
openDialog.Filter := 'Text files only|*.txt';
Раскрывающийся список показывает текст, находящийся перед разделителем |. После разделителя вы определяете маску, которая выбирает файлы, которые вы хотите.
openDialog.Filter := 'Text and Word files only|*.txt;*.doc';
Выше мы разрешили отображать два различных типа файлов, отделенные ;.
openDialog.Filter := 'Text files|*.txt|Word files|*.doc';
Выше мы разрешили отображать текстовые и Word файлы как два отдельных пункта в раскрывающемся списке.
Свойство FilterIndex
Определяет, какой фильтр ниспадающего поля будет отображен первым.
Свойство InitialDir
Устанавливает начальный каталог в диалоге.
Свойство Options
Это набор TOpenOptions флажков. Они являются исчерпывающими. Ключевые значения:
ofReadOnly открывает файл доступный только для чтения
ofFileMustExist может быть открыт только существующий файл
ofAllowMultiSelect пользователь может выбрать 2 или больше файлов
Отображение диалога
Теперь мы вызываем метод TOpenDialog:
if openDialog.Execute
then ...
Execute возвратит истину, если пользователь выбрал файл и нажал OK. Теперь вы можете использовать выбранный файл:
Окончание диалога
Доступ к выбранному файлу или файлам получают, используя следующие свойства:
Свойство FileName
Оно содержит полный путь плюс имя выбранного файла.
Свойство Files
Оно содержит полный путь плюс имя файла из множественного выбора файлов. Имена файлов содержатся в возвращаемом значении TStrings (см. TStringList для получения большей информации о строковых списках).
Наконец, мы должны освободить объект диалога:
openDialog.free;
|
|
Похожие команды |
Append Открывает текстовый файл, для добавления записей в файл (добавляет в конец файла)
AssignFile Связывает дескриптор файла с бинарным или текстовым файлом
PromptForFileName Показывает диалог, позволяющий пользователю выбрать файл
Reset Открывает текстовый файл для чтения, или двоичный файл для чтения/записи
TSaveDialog Отображает диалог для выбора имени сохраняемого файла
TStringList Содержит список переменной длины, состоящий из строк
| |
|
Пример кода : Иллюстрация простого выбора файла |
var openDialog : TOpenDialog; // Переменная OpenDialog
begin // Создание объекта OpenDialog - назначение на нашу переменную OpenDialog
openDialog := TOpenDialog.Create(self);
// Установка начального каталога, чтобы сделать его текущим
openDialog.InitialDir := GetCurrentDir;
// Только разрешенные существующие файлы могут быть выбраны
openDialog.Options := [ofFileMustExist];
// Разрешено выбрать только .dpr и .pas файлы
openDialog.Filter :=
'Delphi project files|*.dpr|Delphi pascal files|*.pas';
// Выбор файлов Паскаля как стартовый тип фильтра
openDialog.FilterIndex := 2;
// Показ диалог открытия файла
if openDialog.Execute
then ShowMessage('File : '+openDialog.FileName)
else ShowMessage('Открытие файла остановлено');
// Освобождение диалога
openDialog.Free;
end;
|
Диалог открытия файла отобразится с двумя ниспадающими фильтрами:
Delphi project files
Delphi pascal files - это отобразится в начале
Диалог установлен в текущий каталог (из которого запущен выполняемый файл).
Если Вы выбираете файл, типа 'Unit1.pas' тогда он в диалоге ShowMessage отобразит:
File : C:\Program Files\Borland\Delphi7\Projects\Unit1.pas
|
|
| Пример кода : Выбор множество файлов |
var openDialog : TOpenDialog; // Переменная OpenDialog
begin // Создание объекта OpenDialog - назначение на нашу переменную OpenDialog
openDialog := TOpenDialog.Create(self);
// Установка начального каталога,
чтобы сделать его текущим
openDialog.InitialDir := GetCurrentDir;
// Только разрешенные существующие
файлы могут быть выбраны
openDialog.Options := [ofFileMustExist];
// Разрешено выбрать только .dpr и .pas файлы
openDialog.Filter :=
'Delphi project files|*.dpr|Delphi pascal files|*.pas';
// Выбор файлов Паскаля как стартовый
тип фильтра
openDialog.FilterIndex := 2;
// Показ диалог открытия файла
if openDialog.Execute
then ShowMessage('File : '+openDialog.FileName)
else ShowMessage('Open file was cancelled');
// Освобождение диалога
openDialog.Free;
end;
|
Диалог открытия файла отобразит. Выберите несколько файлов используя перетаскивание мышью или или CTRL-click.
Когда Вы нажимаете OK, будут показаны выбранные файлы. Подобно этому:
C:\Program Files\Borland\Delphi7\Projects\Unit1.dcu
C:\Program Files\Borland\Delphi7\Projects\Unit1.pas
|
|