Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕНЮ.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
580.44 Кб
Скачать

Диалоговые окна открытия и сохранения файла

Шаг 23. Диалоговые окна для выбора открываемого или сохраняемого файла организуются с помощью компонентов OpenDialog и SaveDialog. Найдите их в Палитре Компонентов на странице Dialogs и поместите на форму. Первый компонент назовите OpenDialog, а второй — SaveDialog (рис. 23).

 

Характерные свойства этих компонентов кратко описаны в таблице:

Свойство

Описание

DefaultExt

Расширение, которое добавляется к имени файла, если пользователь его пропустил.

RIeName

Начальное имя файла.

Filter

Фильтр имени файла.

Fiiterlndex

Номер активного фильтра.

InitialDir

Начальный каталог, открываемый при первом появлении окна диалога.

Options

Параметры, определяющие внешний вид и поведение окна диалога.

Title

Заголовок окна диалога. Если значение свойства не указано, то заголовок будет стандартным -Open (Открыть) или Save (Сохранить), в зависимости от типа компонента.

Компоненты OpenDialog и SaveOialog очень схожи между собой, оба являются объектно-ориентированными оболочками стандартных диалоговых окон Windows: Open и Save. Например, на следующем рисунке показано окно Open (рис. 24).

Приблизительный сценарий работы с каждым из компонентов OpenDialog и SaveDialog таков. Компонент помещается на форму и конфигурируется для выбора тех или иных файлов. По команде меню Open... или Save As... у соответствующего компонента вызывается метод Execute. Метод Execute выполняет диалог и возвращает значение True, если пользователь выбрал файл. Полный маршрут к файлу запоминается в значении свойства FileName. Ход дальнейших действий зависит от прикладной задачи и, как правило, включает или чтение, или запись файла, в зависимости от обрабатываемой команды меню.

Придерживаясь написанного сценария, приспособим компоненты OpenDialog и SaveDialog для выбора графических файлов с расширениями BMP, ICO, EMF и WMF. Чтобы пользователь мог просматривать файлы выборочно, т.е. какого-то одного типа, в диалоговых блоках имеется набор фильтров, оформленный в виде выпадающего списка Files oftype (см. рис. выше). Исходные данные для этого списка устанавливаются в свойстве Filter. Номер активного в данный момент фильтра записывается в свойстве Filterlndex.

Шаг 24. Приступим к формированию фильтров. Активизируйте на форме компонент OpenDialog и в Инспекторе Объектов сделайте двойной щелчок мыши на значении свойстваFilter (рис. 25):

Шаг 25. В результате на экране появится Редактор Фильтра (см. рис. ниже). Он представляет собой список с двумя колонками. В левой колонке вводится текст, отображаемый в выпадающем списке Files of type. В правой колонке через точку с запятой записываются маски, на основании которых выполняется фильтрация файлов в окне диалога. Для того чтобы предоставить пользователю максимальное удобство при выборе графических файлов, установите в компоненте OpenDialog фильтры, показанные на рис. 26.

Шаг 26. Действуя аналогично, установите фильтр в компоненте SaveDialog, как показано на рис. 27.

Компоненты OpenDialog и SaveDialog имеют большое количество булевских параметров, организованных в виде флагов составного свойства Options. Эти параметры влияют на то, как окно диалога выглядит и работает. По умолчанию все параметры имеют значение False. Результат установки параметров в значение True прокомментирован в таблице:

Параметр

Описание

ofAllowMultiSelect

Если равно True, то пользователь может выделить сразу несколько файлов.

ofCreatePrompt

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

ofExtensionDifferent

Этот параметр устанавливается после завершения диалога, если расширение в имени файла отличается от начального расширения.

ofFileMustExist

Если равно True, то пользователь не сможет ввести имя несуществующего файла.

ofHideReadOnly

Если равно True, то переключатель Read-only отсутствует в окне диалога.

ofNoChangeDir

Если равно True, то пользователь не сможет сменить каталог в окне диалога.

ofNoDereferenceUnks

Если равно True, то ярлыки к каталогам трактуются как обычные файлы. В противном случае они трактуются как каталоги.

ofNolongNames

Если равно True, то длинные имена файлов запрещены.

ofNoNetworkButton

Если равно True, то кнопка Network отсутствует в окне диалога. Этот параметр работает только в паре с параметром ofOldStyleDialog.

ofNoReadOnlyRetum

Если равно True, то пользователь не сможет ввести файл с атрибутом read-only (только для чтения).

ofNoTestRleCreate

Если равно True, то проверка на возможность записи в каталог не выполняется.

ofNoValidate

Если равно True, то пользователь может вводить в имени файла любые символы, даже недопустимые.

ofOldStyleDialog

Если равно True, то окно диалога отображается в старом стиле Windows 3. 1.

ofOverwritePrompt

Если равно True, то пользователю выдается предупреждение при попытке сохранить файл с именем, которое уже существует.

ofReadOnly

Если равно True, то переключатель Read-only в окне диалога включен.

ofPathMustExist

Если равно True, то пользователь не сможет ввести для файла несуществующий маршрут.

ofShareAware

Если равно True, то ошибки одновременного доступа к файлу со стороны нескольких приложений игнорируются.

ofShowHelp

Если равно True, то в окне диалога присутствует кнопка Help.

Шаг 27. В нашем простом примере ограничимся тем, что установим в обоих компонентах OpenDialog и SaveDialog параметр ofHideReadOnly, а в компонентеSaveDialog — еще и параметр ofOverwritePrompt.