Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прикл_программир_ч1.doc
Скачиваний:
6
Добавлен:
18.09.2019
Размер:
11.05 Mб
Скачать

7. Системные диалоги

Эти компоненты предназначены для вызова стандартных диалоговых панелей(окон) Windows.К ним относятся:

Компонент OpenDialog – вызывает стандартное диалоговое окно открытия файла.

Компонент SaveDialog – вызывает стандартное диалоговое окно сохранения файла.

Компонент OpenPictureDialog – вызывает стандартное диалоговое окно открытия файла с графическим изображением.

Компонент SavePictureDialog – вызывает стандартное диалоговое окно сохранения файла с графическим изображением.

Компонент FontDialog – вызывает стандартное диалоговое окно выбора шрифтов.

Компонент СolorDialog – вызывает стандартное диалоговое окно выбора цвета.

Компонент PrintDialog – вызывает стандартное диалоговое окно “Печать”.

Компонент PrintSetupDialog – вызывает стандартное диалоговое окно установки параметров печати и выбора принтера.

Компонент FindDialog - отображает диалог поиска в тексте заданного фрагмента.

Компонент ReplaceDialog - отображает диалог контекстного поиска и замены.

.

Все диалоги являются невизуальными компонентами , так что место их размещения на форме не имеет значения. При обращении к этим компонентам вызываются стандартные диалоги , вид которых зависит от версии Windows.Основным методом с помощью которого осуществляется обращение к любому диалогу является функция Execute(). Она открывает диалоговое окно и если пользователь произвел в нем какой-то выбор , то функция возвращает true(истина).Если же пользователь нажал кнопку отмена или клавишу Esc, то функция возвращает false. Стандартное обращение к диалогу имеет вид:

If(< имя компонента - диалога > -> Execute())

< оператор,определяющий выбор пользователя >;

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

К зтим диалогам относятся компоненты OpenDialog (SaveDialog) и OpenPictureDialog (SavePictureDialog) .

Их основные свойства:

FileName – определяет имя выбранного файла

Filter - определяет маски файла (фильтры), доступные в диалоге.В процессе проектироваия это свойство задается с помощью редактора фильтров , который вызывается нажатием кнопки с многоточием возле имени этого свойства в Инспекторе объектов.

FilterIndex - определяет индекс фильтра по умолчанию при открытии диалога.

InitialDir - определяет каталог при открытии диалога.

DefaultExt - определяет заданное по умолчанию расширение файла.

Titleзаголовок окна.

Options - различные опции компонента, которые определяют условия выбора файла.Например, свойство ofCreatePrompt выводит замечание и запрос на создание нового файла , если польэователь написал имя несуществующего файла.

В компонентах диалогов открытия и сохранения файлов предусмотрена возможность обработки ряда событий:

OnCanClose – возникает при нормальном закрытии пользователем окна после выбора файла..

OnFolderChange – наступает при изменении каталога.

OnSelectionChange – наступает при изменении имени файла.

OnShow - наступает, когда диалог открывается.

OnTypeChange – наступает при изменении типа файла.

Пример.Пусть приложение включает окно редактирования RichEdit1 и диалоги OpenDialog и SaveDialog. Тогда обработка команды Открыть, загружающей выбранный пользователем файл в RichEdit1, может сводиться к следующему:

AnsiString MyFName = " ";...

if (OpenDialog1->Execute())

{

MyFName = OpenDialog1->FileName;

RichEdit1->Lines->LoadFromFile(MyFName);

}

Этот блок операторов вызывает диалог и проверяет выбрал ли пользователь файл.Затем имя выбранного файла (OpenDialog1->FileName) сохраняется в переменной MyFName и файл загружается в текст RichEdit1 методом LoadFromFile.

Обработка команды Сохранить как, сохраняющей текст окна RichEdit1 в выбранном пользователем файле, сводится к следующему:

// Задание имени по умолчанию

SaveDialog1->FileName = MyFName;

if (SaveDialog1->Execute())

{

MyFName = OpenDialog1->FileName;

RichEdit1->Lines->SaveToFile(MyFName);

}

Первый из этих операторов присваивает свойству FileName компонента SaveDialog1 запомненное имя файла.Это имя по умолчанию будет предложено пользователю при открытии диалога Сохранить как .Следующий оператор открываетдиалогь и , если пользователь выбрал в нем , запоминает в новое имя файла и сохраняет в файле с этим именем текст компонента RichEdit1.

Обработка команды Сохранить, сохраняющей текст окна RichEdit1 в ранее открытом или, если текст не из файла, то в выбранном пользователем файле, сводится к следующему:

if (RichEdit1 ! = "")

RichEdit1->Lines->SaveToFile(MyFName);

else

if(SaveDialog1->Execute())

{

MyFName = SaveDialog1->FileName;

RichEdit1->Lines->SaveToFile(MyFName);

}

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