TOpenDialog, TSaveDialog, TOpenPictureDialog та TSavePictureDialog

Delphi , Програма та Інтерфейс , Діалоги та Фрейми

Переклад однойменної статті із сайту delphi.about.com

Стандарні діалогові вікна

Практично будь-яка програма Windows використовує стандартні діалоги, вбудовані в операційну систему, для відкриття та збереження файлів, пошуку тексту, друку, вибору шрифту або встановлення кольору.

У цій статті ми розглянемо основні властивості та методи цих діалогів і особливо сфокусуємо увагу на діалогах Open і Save.

Стандартні діалогові вікна можна знайти на панелі компонентів у закладці Dialogs. Щоб почати використовувати певне діалогове віконце, його досить помістити на форму. Компоненти стандартних діалогів невидимі, тому Ви не зможете змінити дизайн такого діалогу під час розробки програми.

TOpenDialog та TSaveDialog

Діалогові вікна File Open та File Save мають кілька спільних властивостей. File Open в основному використовується для вибору та відкриття файлів, у той час як діалог File Save (так само використовується як діалогове вікно Save As) використовується для отримання від користувача імені файлу, щоб зберегти файл. Далі ми розглянемо деякі важливі властивості TOpenDialog та TSaveDialog:

Властивість Options призначена для визначення кінцевого вигляду вікна. Наприклад, за допомогою наступного коду:

ми дозволимо користувачеві вибирати кілька файлів, а також змусимо генеруватися повідомлення про помилку, якщо користувач вибере неіснуючий файл.

Властивість InitialDir використовується для вказівки директорії, яка буде показана під час створення діалогу. Наступний код встановить початкову директорію, з якої було запущено додаток:

tsavedialog

Також фільтр можна задати програмно. Рядок фільтра повиненмістити опис та розширення для цього типу файлів, розділені вертикальною рисою:

Властивість FileName. Коли користувач натисне на діалозі кнопку OK, ця властивість міститиме повний шлях та ім'я вибраного файлу.

Виклик діалогового вікна

Для створення та відображення стандартного діалогу необхідно виконати метод Execute для потрібного діалогу. За винятком діалогів TFindDialog і TReplaceDialog, всі інші діалоги відображаються модально.

Всі стандартні діалогові віконця дозволяють визначити чи натиснув користувач кнопку "Скасувати" (Cancel) (або натиснув ESC). Якщо метод Execute повернув True, то користувач натиснув OK або зробив подвійне клацання по файлу або натиснув Enter на клавіатурі, інакше, якщо була натиснута кнопка Cancel, клавіша Esc або Alt-F4, буде повернуто значення False.

Цей код показує діалог File Open і якщо користувач натиснув "Відкрити" (Open), то буде показано ім'я вибраного файлу.

Використання тільки коду

Щоб працювати діалогом Open (або будь-яким іншим) не поміщаючи при цьому форму компонент OpenDialog, можна скористатися наступним кодом:

Зверніть увагу, що перед викликом Execute можна встановити різні властивості компонента OpenDialog.

TOpenPictureDialog та TSavePictureDialog

А тепер пропоную застосувати теорію на практиці. Створимо найпростіший блокнот, і подивимося як працюють діалогові вікна Open і Save:

Open

Для створення блокнота зробимо таке:

  1. Запустіть Delphi та виберіть у меню File-New Application.
  2. Помістіть на форму Memo, OpenDialog, SaveDialog та дві кнопки.
  3. Перейменуйте Button1 на btnOpen, а Button2 на btnSave.

1. Помістіть у подію форми FormCreate наступний код:

Цей код встановлює деякі властивості діалогу Open, як було описано на початку статті.

2. Додайте наступний код у подію Onclick для кнопок btnOpen та btnSave:

Тепер можна сміливо запускати проект:

topenpicturedialog

СтаттяTOpenDialog, TSaveDialog, TOpenPictureDialog та TSavePictureDialog розділу Програма та Інтерфейс Діалоги та Фрейми може бути корисною для розробників на Delphi та FreePascal.

Коментарі та питання