§ 7. Работа со стандартными диалогами
Сайт: | Профильное обучение |
Курс: | Информатика. 11 класс (Повышенный уровень) |
Книга: | § 7. Работа со стандартными диалогами |
Напечатано:: | Гость |
Дата: | Среда, 8 Май 2024, 02:46 |
7.1. Стандартные диалоги
Практически любое приложение Windows использует стандартные диалоги, встроенные в операционную систему, для открытия и сохранения файлов, выбора атрибутов шрифта или установки цвета, поиска текста, печати. В библиотеку VCL включены компоненты, реализующие соответствующие окна. Они размещены на панели Dialogs (пример 7.1). В примере 7.2 приведены некоторые компоненты для реализации стандартных диалогов Windows. Объекты странице Dialogs, невидимы во время выполнения, поэтому место их размещения на форме не имеет значения (пример 7.3). Внешний вид окна диалога зависит от версии Windows. Вызов и обработка диалогов происходит программно. Для всех диалогов определен метод Execute: bool (пример 7.4). С помощью этого метода происходит открытие окна соответствующего диалога. Значение true присваивается функции Execute в случае, если пользователь щелкнул по кнопке Ok (выполнил двойной щелчок по выбранному элементу или нажал клавишу Enter). В свойствах компонента-диалога запоминается выбор пользователя, который затем можно обработать. Если в диалоге была нажата кнопка отмена или клавиша Esc, то функция получит значение false. |
Пример 7.1. Панель Dialogs. Пример 7.2. Список некоторых стандартных диалогов.
Пример 7.3. Диалоговые компоненты и кнопки для их вызова на форме: Пример 7.4. Стандартное обращение к диалогу:
|
7.2. Диалоги для работы с цветом и шрифтом
Для вызова стандартного окна установки атрибутов шрифта можно использовать компонент FontDialog (пример 7.5). В окне Шрифт пользователь может выбрать имя шрифта, его стиль, размер, цвет. Основное свойство компонента — Font типа TFont. Метод, который позволит присвоить значения всех выбранных атрибутов шрифта, шрифту компонента — метод Assign. Для вызова стандартного окна установки цвета используется компонент ColorDialog (пример 7.6). В нем можно выбрать цвет из базовой палитры. Основное свойство компонента ColorDialog — Color. Это свойство соответствует тому цвету, который пользователь выбрал в диалоге. Дополнительные возможности описаны в Приложении. Пример 7.7. Создать проект «Форматирование надписи». Для надписи на форме выбрать атрибуты текста с помощью диалогового окна Шрифт. Цвет фона выбрать с помощью диалогового окна Цвет. Этапы выполнения задания
|
Пример 7.5. Стандартный диалог для настроек шрифта: Пример 7.6. Стандартный диалог для выбора цвета: Пример 7.7. Форма на этапе конструирования: Обработчик события OnClick для компонента Button1
Обработчик события OnClick для компонента Button2
|
7.3. Диалоги для работы с файлами
Диалоги для открытия и сохранения файлов (пример 7.8) используются в различных приложениях. Основное свойство компонентов OpenDialog и SaveDialog, в котором имя файла возвращается в виде строки, — это свойство FileName. Если задать данное свойство на этапе конструирования в окне инспектора объектов, то при открытии диалога, оно будет появляться в строке Имя файла. Пример 7.9. Создать проект «Числа». Сгенерировать случайные числа в заданном диапазоне и сохранить их в файл. Посчитать сколько в файле чисел, кратных заданному. Результат вывести на форме. Этапы выполнения задания
using namespace std; Имя файла, которое принимает диалог, является строкой. В системе программирования CBuilder поддерживается свой собственный тип строк: String. Для совместимости этого типа строк с типом string, необходимо преобразование, которое можно выполнить, используя команду c_str(). Далее работа с текстовыми файлами происходит так же, как и в среде CodeBlocks. Рассмотрим некоторые свойства диалогов для работы с файлами. Типы искомых файлов, появляющиеся в строке Тип файла, задаются свойством Filter. Данное свойство можно задать на этапе проектирования, нажав кнопку около свойства Filter в окне инспектора объектов (пример 7.10). Редактор фильтров позволяет устанавливать маски шаблонов файлов. В поле Filter Name задается тот текст, который пользователь увидит в строке Тип файла окна диалога. В столбце Filter задается шаблон (символ «*» обозначает любой набор символов, символ «?» заменяет один любой символ). Свойство DefaultExt определяет значение расширения файла, задаваемое по умолчанию. Если значение этого свойства не задано, пользователь должен указать в диалоге полное имя файла с расширением. Если значение задано, то имя файла можно указывать без расширения (пример 7.11). Свойство FilterIndex определяет номер фильтра, который увидит пользователь при открытии окна диалога. Свойство InitialDir компонентов OpenDialog и SaveDialog позволяет настроить папку (пример 7.12), содержимое которой будет открываться при первом вызове диалогового окна. Если значение не установлено, то в первый раз будет открываться папка Мои документы, в дальнейшем — последняя использовавшаяся папка. Свойство Title позволяет задать заголовок диалогового окна.. |
Пример 7.8. Стандартные диалоги для открытия и сохранения файла: Пример 7.9. Форма на этапе конструирования: Обработчик события OnClick для компонента Button1
Обработчик события OnClick для компонента Button2
Работающее приложение: Содержимое текстового файла: Пример 7.10. Свойство Filter: Пример 7.11. Окно Сохранение В инспекторе объектов установлены фильтры, которые описаны в примере 7.10. Значения свойств DefaultExt и FilterIndex: Пример 7.12. Если необходимо, чтобы при сохранении или загрузке файла открывалась текущая папка (папка, в которой находится скомпилированный файл проекта), то в событии FormCreate необходимо прописать команды:
|
Вопросы к параграфу
1. Для чего предназначены компоненты, размещенные на панели Dialogs? 2. Какой метод определен для всех диалогов? 3. С помощью какого диалога можно изменить свойства шрифта? 4. С помощью какого диалога можно изменить цвет? 5. Какое свойство является основным у диалога выбора цвета? 6. Какие диалоги предназначены для работы с файлами? 7. Какое свойство является основным у диалогов работы с файлами? |
Упражнения
1. Создайте проект «Код цвета». При помощи стандартного диалога выбирается цвет панели (событие OnClick для панели). Разложите этот цвет на составляющие. Составляющие цвета отражаются на соответствующих цветовых панелях. Числовое значение цвета выводится в десятичном и *(или) шестнадцатеричном представлении. Для выделения красной, зеленой или синей составляющей цвета можно воспользоваться функциями GetRValue (TColor n), GetGValue (TColor n), GetBValue (TColor n) соответственно. Функции возвращают числовое значение, которое может быть использовано в качестве параметра функции RGB.
Примерный вид формы:
2. Сгенерируйте случайные числа в заданном диапазоне и сохраните их в файл. Посчитайте сколько в файле простых чисел. Результат вывести на форме. Примерный вид формы может быть таким же, как и в примере 7.9.
3. В текстовом файле записаны числа. Посчитайте числа в вектор. Отсортируйте их по возрастанию. Результат запишите в другой текстовый файл. Выбор файла с данными и результатами осуществляйте с использованием стандартных диалогов работы с файлами. Для использования функции sort подключите библиотеку algorithm.