- •Министерство образования российской федерации
- •Северо-западный государственный заочный технический университет
- •В. Л. Макаров
- •Прикладное программирование
- •Конспект лекций с. Петербург 2003г
- •Окно формы. Форма является основой большинства приложений , так как на ней размещаются другие управляющие компоненты. Внешний вид окна формы показан на рисунке 1.3.
- •3.Основные свойства, методы и события формы
- •Компоненты vcl
- •5.1. Кнопки управления
- •5.2. Окно редактирования Edit
- •5.3 Многострочные окна редактирования Memo и RichEdit
- •5.4 Компоненты выбора из списков – ListBox, CheckListBox, ComboBox
- •5.5 Элемент управления Label (надпись или метка)
- •5.6 Элемент управления RadioButton (Радиокнопка)
- •5.7 Полосы прокрутки (ScrollBar)
- •5.9 Компонент Timer(Таймер)
- •5.10 Компонент StringGrid ( таблица строк)
- •5.11 Компонент Chart – графики и диаграммы
- •5.12 Компонент f1Book
- •6. Создание меню
- •7. Системные диалоги
- •7.1 Диалоги открытия и сохранения файлов
- •7.2 Диалог выбора шрифта(компонент FontDialog )
- •7.3 Диалог выбора цвета(компонент ColorDialog )
- •7.4Диалоги поиска и замены текста(компоненты FindDialog и ReplaceDialog )
- •8.1 Структура головного файла проекта
- •8.2 Структура файлов модулей форм
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 так же , как было рассмотрено выше.