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;
Тип TOpenDialog у Delphi: Ілюстрація простого вибору файлу
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
Тип TOpenDialog в Delphi: Вибір множини файлів
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;
Результат
Діалог відкриття файлу відобразиться. Виберіть кілька файлів за допомогою перетягування мишею або CTRL-click.
Коли ви натискаєте OK, відображаються вибрані файли. Подібно до цього:
C:\Program Files\Borland\Delphi7\Projects\Unit1.dcu
C:\Program Files\Borland\Delphi7\Projects\Unit1.pas
Подібні функції, процедури та команди
Append — відкриває текстовий файл для додавання записів у файл (додає в кінець файлу).
AssignFile — пов'язує дескриптор файлу з бінарним чи текстовим файлом.
PromptForFileName — показує діалог, що дозволяє користувачеві вибрати файл.
Reset — відкриває текстовий файл для читання або двійковий файл для читання/запису.
TSaveDialog — відображає діалог для вибору імені файлу, який зберігається.
TStringList — містить список змінної довжини, що складається з рядків.
