Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
delphi.pdf
Скачиваний:
191
Добавлен:
24.02.2016
Размер:
6.84 Mб
Скачать

свойств перейдите к свойству Bitmap и нажмите клавишу Del, после чего нажмите клавишу Enter.

Теперь мы вплотную приблизились к полноценному приложению для просмотра графических файлов.

8.2. Полноценное приложение для просмотра графических файлов

Сейчас вы достаточно много знаете о меню, и вас наверняка одолевает желание сделать из вышеприведенной заготовки полноценное приложение для просмотра графических файлов. Для этого необходимо решить две задачи:

организовать выбор файла по командам меню Open... и Save As... ;

реализовать загрузку и отображение рисунка.

Первая задача решается с помощью стандартных диалоговых компонентов OpenDialog и SaveDialog, вторая — с помощью специального компонента

Image.

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

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

Рисунок 8.28. Компоненты OpenDialog и SaveDialog

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

363

Происходит непосредственно перед отображением окна диалога на экране. Происходит, когда пользователь выбирает фильтр.

Свойство

DefaultExt

FileName

Filter

FilterIndex

InitialDir

Options

OptionsEx

Title

OnCanClose

Описание

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

Имя выбранного файла. Фильтры имени файла. Номер активного фильтра.

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

Параметры, определяющие внешний вид и поведение окна диалога. (см. таблицу 8.7).

Дополнительные параметры, определяющие внешний вид и поведение окна диалога (см. таблицу 8.7).

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

Происходит, когда пользователь пытается закрыть окно диалога. Позволяет выполнить дополнительные проверки и отменить закрытие окна при необходимости.

OnClose

Происходит

непосредственно перед

закрытием формы после

события

OnCanClose.

 

 

 

 

 

 

 

OnFolderChange

Происходит, если пользователь переходит в другой каталог.

 

OnIncludeItem

Происходит

при добавлении каждого

файла в список отображаемых

в окне

файлов. Позволяет выполнять дополнительную фильтрацию файлов.

 

 

 

OnSelectionChange Происходит при смене выделенного файла или списка файлов.

OnShow

OnTypeChange

Таблица 8.6. Важнейшие свойства и события компонентов OpenDialog и SaveDialog.

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

364

Рисунок 8.29. Стандартное окно Open для выбора открываемого файла

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

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

365

Шаг 31. Приступим к формированию списка фильтров. Активизируйте на форме компонент OpenDialog и в окне свойств выберите свойство Filter (рисунок 8.30). Щелчком кнопки с многоточием откройте редактор фильтров

— окно Filter Editor (рисунок 8.31).

Рисунок 8.30. Нажатие кнопки с многоточием вызывает редактор фильтров

Окно Filter Editor представляет собой список с двумя столбцами. В левой колонке вводится текст, отображаемый в раскрывающемся списке Files of type окна диалога. В правом столбце через точку с запятой записываются маски, на основании которых выполняется фильтрация файлов.

Шаг 32. Установите в компоненте OpenDialog фильтры, как показано на рисунке 8.31.

Рисунок 8.31. Окно для редактирования фильтров — Filter Editor

366

Шаг 33. Аналогичным образом установите фильтры в компоненте SaveDialog. Самый простой и быстрый способ в данном случае — скопировать текст свойства Filter из компонента OpenDialog в компонент SaveDialog через буфер обмена (результат показан на рисунке 8.32):

Рисунок 8.32. Фильтры для окна Save скопированы из окна Open

Компоненты OpenDialog и SaveDialog имеют большое количество булевских параметров, организованных в виде составных свойств Options и OptionsEx. Эти параметры влияют на то, как окно диалога выглядит и работает. Их смысл поясняет таблица 8.7.

Параметр ofReadOnly

ofOverwritePrompt

ofHideReadOnly ofNoChangeDir ofShowHelp

ofNoValidate

ofAllowMultiSelect

ofExtensionDifferent

ofPathMustExist

ofFileMustExist

Описание

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

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

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

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

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

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

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

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

367

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