На этом шаге мы рассмотрим общие принципы использования компонентов этой вкладки.
В состав Windows входит ряд типовых диалоговых окон, таких как окно выбора загружаемого файла, выбора шрифта, настройки принтера и т. д. В Delphi реализованы классы, объекты которых дают программисту удобные способы создания и использования таких окон.
Рис.1. Палитра компонентов вкладки Dialogs
Дадим краткую характеристику компонентов, находящихся на этой вкладке:
Компонент | Описание |
---|---|
Компонент TOpenDialog - окно открытия файла | |
Компонент TSaveDialog - окно сохранения файла | |
Компонент TOpenPictureDialog - окно открытия изображения (графического файла) | |
Компонент TSavePictureDialog - окно сохранения изображения (графического файла) | |
Компонент TFontDialog - окно выбора шрифта | |
Компонент TColorDialog - окно выбора цвета | |
Компонент TPrintDialog - окно настройки параметров печати | |
Компонент TPrinterSetupDialog - окно настройки параметров принтера | |
Компонент TFindDialog - окно поиска фрагмента текста | |
Компонент TReplaceDialog - окно замены фрагмента текста | |
Компонент TPageSetupDialog - окно установки параметров печатаемой страницы |
Работа со стандартными диалоговыми окнами осуществляется в три этапа.
Вначале на форму помещается соответствующий компонент и осуществляется настройка его свойств (следует заметить, что собственно компонент не виден в момент работы программы, видно лишь создаваемое им стандартное окно). Настройка свойств может проходить как на этапе конструирования, так и в ходе прогона программы. Как и для любых других компонентов, программист не должен заботиться о вызове конструктора и деструктора класса диалогового окна - эти вызовы реализуются автоматически в момент старта и завершения программы.
На втором этапе осуществляется вызов стандартного для классов диалоговых окон метода Execute, который создает и показывает на экране диалоговое окно. Вызов этого метода обычно располагается внутри обработчика какого-либо события. Например, обработчик выбора в меню команды Открыть файл может вызвать метод Execute компонента TOpenDialog, обработчик щелчка на кнопке Сохранить панели инструментов может вызвать такой же метод компонента TSaveDialog и т. д. Только после обращения к методу Execute на экране появляется соответствующее диалоговое окно. Это окно является модальным, поэтому сразу после обращения к методу Execute дальнейшее выполнение программы приостанавливается до тех пор, пока пользователь не закроет окно. Поскольку Execute - логическая функция, она возвращает в программу значение True, если результат диалога с пользователем был успешным.
Проанализировав результат вызова метода Execute, программа может выполнить третий этап - использовать введенные с помощью диалогового окна данные - имя файла, параметры принтера, выбранный шрифт и т. д.
Проиллюстрируем сказанное следующим примером. Создадим простую программу для просмотра содержимого текстового файла. Для этого на пустую форму поместите компонент TOpenDialog, а также кнопку TButton и многострочное поле TMemo.
Рис.2. Внешний вид проекта
При работе программы щелчок на кнопке будет сигналом о необходимости загрузить в поле новый файл. Создайте представленный ниже обработчик события OnClick этой кнопки:
procedure TForm1.Button1Click(Sender: TObject); begin // Настраиваем компонент на отбор текстовых файлов: OpenDialog1.Filter := 'Текстовые файлы|*.txt|' + 'Файлы Паскаля|*.pas'; // Выполняем диалог и анализируем его результат if OpenDialog1.Execute and FileExists(OpenDialog1.FileName) then // Результат успешный - пользователь выбрал файл. // Загружаем файл в поле Memol: Memo1.Lines.LoadFromFile(OpenDialog1.FileName); end;
Внешний вид работающего приложения приведен на рисунках 3 и 4.
Рис.3. Окно выбора файла
Рис.4. Содержимое выбранного файла помещено в компонент TMemo
На следующем шаге мы рассмотрим компоненты TOpenDialog и TSaveDialog.