Использование диалоговых компонентов

Тема: Использование диалоговых компонентов
Цель лабораторной работы – Научиться использовать диалоговые окна компоненты. Стандартные диалоговые окна в приложении.

Студенты должны научиться:

  • Работать с компонентами диалоговые окна
  • Создавать программы с данными компонентами
  • Различать диалоговые окна

Теоретический материал

В Delphi 7 есть одиннадцать компонентов, находящихся на странице Dialogs  палитры компонентов   и реализующих диалоговые окна общего назначения.

Эти диалоговые окна используются многими Windows-приложениями для выполнения таких операций, как открытие, сохранение и печать файлов, поэтому их часто называют стандартными. Например, текстовый процессор Microsoft Word использует большинство из перечисленных далее диалоговых окон. Более того, поскольку стандартные диалоговые окна определяются средой Windows, и мы пользуемся локализованной версией этой операционной системы, диалоговые окна оказываются русифицированными, несмотря на то что сама среда Delphi не локализована.

На странице Dialogs  палитры компонентов содержатся следующие компоненты, реализующие стандартные диалоговые окна:

  • openDialog(выбор открываемого файла);
  • saveDialog(выбор сохраняемого файла);
  • openPictureDialog(выбор открываемого графического файла);
  • savePictureDialog(выбор сохраняемого графического файла);
  • FontDialog(настройка параметров шрифта);
  • ColorDialog(выбор цвета);
  • PrintDialog(настройка принтера для печати);
  • PrinterSetupDialog(выбор принтера и настройка его параметров);
  • FindDialog(ввод строки текста для поиска);
  • ReplaceDialog(ввод строк текста для поиска и для замены);
  • PageSetupDialog(установка параметров страницы).

Последнее в приведенном списке диалоговое окно появилось в Delphi 7. Для использования стандартного диалогового окна соответствующий ему компонент должен быть помещен в форму, а его свойства установлены в нужные значения. После этого следует связать вызов диалогового окна с каким-либо событием. Чаще всего таким событием является выбор пункта меню или нажатие кнопки.

Метод Execute

Для вызова любого стандартного диалогового окна используется метод Execute — функция, возвращающая логическое значение. При закрытии диалога кнопкой ОК (либо Open или Save) функция Execute возвращает значение True, а при отмене диалога — значение False.

Проверить стандартное диалоговое окно можно уже на этапе разработки приложения. При выборе команды Test Dialog (Проверить диалог) контекстного меню или двойном щелчке на компоненте стандартного диалогового окна оно открывается и работает так же, как и при выполнении приложения. После закрытия стандартного диалогового окна оно возвращает через свои свойства значения, выбранные или установленные в процессе диалога. Например, при открытии файла возвращаемым значением является имя открываемого файла (OpenDialog1.FileName), а при выборе цвета – новый цвет (ColorDialog1.Color).

При работе c диалоговыми окнами можно заметить, что выбирать приходится из всех файлов в нужной директории. Удобнее видеть только, например, текстовые файлы, или другой тип файлов по нашему выбору. Для этого используются фильтры, свойство Filter в наших компонентах. Настраивается оно вИнспекторе Объектов. При выборе его можно перейти в редактор фильтров:
В колонке FilterName записываем имена фильтров(расширения) , в колонке Filter – список масок файлов, разделённых точкой с запятой. Маска файла в данном случае выглядит как:

*. расширение файла, пример: *.txt, *.doc, *.dcv. Звёздочка означает, что выбираются файлы с любыми именами, подходящие по расширению.

Свойство Delphi диалогов Title позволяет записать в заголовок нужную нам фразу. Если оставить его пустым, то в заголовке будут стандартные “открыть” или “сохранить”.

Свойство InitialDir позволяет в момент открытия оказаться в нужной нам директории. Оно доступно как на этапе “конструирования”, так и программно.

Задание 1

  1. Сделать приложение, которое позволит познакомиться с функциями диалоговых окон. На форме разместить компоненты, согласно изображению. И подписать их. У компонента Image в свойстве Stretch поставить значение True, того чтобы изображение было загружено в пределах данного компонента.
  2. Прописать код для каждой кнопки. Для кнопки Открыть:

if OpenDialog1.Execute then Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

Для кнопки Сохранить:

Memo1.Lines.SaveToFile(SaveDialog1.FileName);

Для кнопки Шрифт:

if FontDialog1.Execute then Memo1.Font:=FontDialog1.Font;

Для кнопки Поиск:

FindDialog1.Execute;

Дополнительно для функции поиска нужно прописать в событии OnFind  компонента FindDialog:

if  pos(FindDialog1.FindText, memo1.Text)<>0 then

begin

with Memo1 do

begin

HideSelection := False;

SelStart := pos(FindDialog1.FindText, Text)-1;

SelLength := Length(FindDialog1.FindText);

end;

end

else

ShowMessage(‘Строка ‘+FindDialog1.FindText+’ не найдена!’);

Пояснение:  При нажатии кнопки поиска, выполняется запуск компонента FindDialog, далее компонент выполняет событие OnFind. Событие проверяет нужное слово в тексте, и переедает позицию текста функцией pos(FindDialog1.FindText, memo1.Text), где выполняется с какого символа начать выделять и каким закончить выделение: HideSelection := False;  HideSelection — True означает выбранный текст больше не будет выглядеть выбранным при переходе фокуса на другой элемент управления, если оно — False выбранный текст останется выбранным. SelStart := pos(FindDialog1.FindText, Text)-1; определяет порядковый номер символа, перед которым находится курсор. SelLength := Length(FindDialog1.FindText);- задаёт количество выделенных символов. Причём оно может быть и отрицательным. Если необходимое слово отсутствует, то выдается сообщение: ShowMessage(‘Строка ‘+FindDialog1.FindText+’ не найдена!’);

  1. Прописать код для каждой кнопки. Для кнопки Открыть изображение:

if OpenPictureDialog1.Execute then Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

Label1.Caption:=’Путь: ‘+OpenPictureDialog1.FileName;

Прописать код для кнопки Сохранить изображение:

if SavePictureDialog1.Execute then Image1.Picture.SaveToFile(SavePictureDialog1.FileName);

Задание 2

  1. Необходимо разработать приложение: текстовый блокнот. Проект сохранить, для дальнейшего использования при изучении дополнительных апгрейдов.

Содержание отчета:

  1. Номер, тема, цель лабораторной работы.
  2. Задание к работе.
  3. Описание входных, промежуточных и результирующих данных с указанием их типа.
  4. Программа на языке программирования.
  5. Результат выполнения программы (Введенное данные и полученные данные)
  6. Вставить код, написанный вами
  7. Вывод о проделанной работе.

Автор публикации

не в сети 3 недели

Администратор ресурса

Здравствуйте. Если у Вас возникают какие-либо вопросы касательно работы сайта, то вы можете написать на электронную почту admin@learn-more.kz
Комментарии: 24Публикации: 287Регистрация: 25-01-2017

Добавить комментарий