Шаг 1.
Вкладка Dialogs (общие сведения)

    На этом шаге мы рассмотрим общие принципы использования компонентов этой вкладки.

    В состав Windows входит ряд типовых диалоговых окон, таких как окно выбора загружаемого файла, выбора шрифта, настройки принтера и т. д. В Delphi реализованы классы, объекты которых дают программисту удобные способы создания и использования таких окон.


Рис.1. Палитра компонентов вкладки Dialogs

    Дадим краткую характеристику компонентов, находящихся на этой вкладке:

Таблица 1. Основные компоненты
Компонент Описание
Компонент 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.




Содержание Следующий шаг