Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab6.doc
Скачиваний:
6
Добавлен:
02.09.2019
Размер:
98.3 Кб
Скачать

Лабораторна робота №6

Тема: Вивчення стандартних діалогів.

Мета: ознайомитися з особливостями застосування стандартних діалогів TOpenDialog, TSaveDialog, TFontDialog, TFindDialog й TReplaceDialog сторінки Dialogs палітри компонентів та навчитися використовувати їх в процесі візуальної побудови додатку.

Теоретичні відомості

До складу Windows входить ряд типових діалогових вікон, таких як вікно вибору файлу, що завантажується, вікно вибору шрифта, вікно для налаштування принтеру і т.і. В Delphi реалізовані класи, об’єкти яких дають програмісту зручні способи створення та використання таких вікон.

Робота зі стандартними діалоговими вікнами здійснюється в три етапи. Спочатку на формі розміщується відповідний компонент і здійснюється налаштування його властивостей (потрібно зазначити, що безпосередньо компонент-діалог не видимий під час виконання програми, видимим є тільки вікно, що створюється компонентом). Налаштування властивостей може здійснюватися як під час конструювання , так і під час виконання програми.

На другому етапі здійснюється виклик стандартного для діалогів метода Execute, який створює та на показує на екрані діалогове вікно. Виклик цього методу звичайно розміщується всередині оброблювача якої-небудь події. Наприклад, оброблювач вибору опції меню “Відкрити файл” може викликати метод Execute діалогу TOpenDialog, оброблювач натиснення на кнопку “Зберігти” може викликати такий самий метод компонента TSaveDialog. Тільки після звернення к Execute на екрані з’явиться відповідне діалогове вікно. Вікно діалога є модальним вікном, тому одразу після звернення до Execute подальше виконання програми призупиняється доти, поки користувач не закроє вікно. Оскільки Execute – логічна функція, вона повертає в програму значення True, якщо результат діалогу з користувачем був вдалим.

Проаналізувавши результат Execute, програма може виконати третій етап – використання введених за допомогою діалогового вікна даних – ім’я файла, налаштувань принтера, обраного шрифту та ін.

Приклад. Створимо просту програму для перегляду вмісту текстового файлу. Для цього на порожній формі розмістимо компонент TOpenDialog, а також кнопку TButton та редактор TMemo. При натисненні на кнопку необхідно завантажити в редактор новий файл. Створимо таку процедуру обробки події OnClick цієї кнопки:

procedure TForm1.Button1Click(Sender: TObject);

begin

if OpenDialog1.Execute and FileExists(OpenDialog1.FileName) then

Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

end;

  1. TOpenDialog та tSaveDialog – діалоги відкриття та збереження файлів.

Ці компоненти мають ідентичні властивості, тому розглянемо їх разом.

Властивість FileName: string містить маршрут пошуку і обраний файл при вдалому завершенні діалогу. Програма може використовувати цю властивість для доступу до файлу з метою читання з нього даних (TOpenDialog) або запису в нього даних (TSaveDialog). Користувач може задати довільне ім’я. При записі це не має значення, але при читанні відсутність файлу може привести до помилки. Для запобігання цьому можна перевірити факт існування файлу глобальної функцією FileExists, як це показано в попередньому прикладі, або використати механізм обробки виключних ситуацій.

Властивість Filter: string використовується для фільтрації (відбору) файлів, що відображаються в діалоговому вікні. Цю властивість можна встановлювати за допомогою спеціального редактору під час конструювання форми або програмно.

Встановити початковий каталог дозволяє властивість InitialDir: string.

За допомогою властивості DefaultExt: string[3] формується повне ім’я файлу, якщо при ручному введенні користувач не вказав розширення. В цьому випадку до ім’я файлу додається розділова крапка та значення цієї властивості.

В діалоговому вікні для ручного введення передбачений елемент TEdit, який при бажанні можна замінити на TComboBox. Для цього необхідно властивості FileEditStyle привласнити значення fsComboBox замість fsEdit, що встановлено за умовчанням. Якщо обрано комбінований список, з ним можна пов’язати протокол вибору імен. Для цього використовується властивість HistoryList: Tstrings, вміст якого буде з’являтися в списку. Цей список не поповнюється автоматично, тому за його вмістом повинна слідкувати програма. Наприклад:

If OpenDialog1.Execute then

HistoryList.Add(OpenDialog1.FileName);

Налаштування діалогу можуть змінюватися за допомогою властивості Options: TOpenOptions. Значення цієї властивості мають наступний сенс.

Значення

Функції

ofReadOnly

Встановлює перемикач “тільки для читання”

ofOverwritePrompt

Потребує згоди користувача при записі в існуючий файл

ofHideReadOnly

Приховує перемикач “тільки для читання”

ofNoChangeDir

Забороняє змінювати каталог

ofShowHelp

Включає у вікно кнопку Help

ofNoValidate

Забороняє автоматичну перевірку правильності символів, що набираються в імені файлу

ofAllowMultiSelect

Дозволяє вибір декількох файлів

ofExtensionDifferent

При завершенні діалогу наявність цього значення у властивості Options свідчить, що користувач ввів розширення, що відрізняється від значення за умовчанням

ofPathMustExist

Дозволяє вказувати файли тільки із існуючих каталогів

ofFileMustExist

Дозволяє вказувати тільки існуючі файли

ofCreatePrompt

Потребує підтвердження при створенні неіснуючого файлу

ofShareAware

Дозволяє вибирати файли, які використовуються іншими паралельно виконуємими програмами

ofNoReadOnlyReturn

Забороняє вибір файлів, які мають атрибут “тільки для читання”

ofNoTestFileCreate

Забороняє перевірку доступності мережевого або локального диску

ofNoNetworkButton

Забороняє вставку кнопки для створення мережевого диску

ofNoLongName

Забороняє використання довгих імен файлів

ofOldStyleDialog

Створює діалог в стилі Windows 3х

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]