Delphi справочник - Форум программистов - Навигация  
 A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z      По первой букве  
System     SysUtils     StrUtils     DateUtils     FileCtrl     ConvUtils     StdConvs     Math     Classes     Dialogs     Types     Variants    ПО Unit   Compiler directives     Directives     Keywords     Types     Variables     Constants     Functions     Procedures    По категории  

форум программистов

Основы Delphi
TOpenDialog
Тип
Отображает диалог выбора файла Dialogs unit
  type TOpenDialog;
Описание
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
 


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика



Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки? Slurm подготовили для вас особенный продукт!





форум программистов


© Форум Delphi  |  Форум Pascal   |  Блог программистов   |  Исходники Delphi   |  Автор сайта  |  Ссылки   |  Английская версия