В состав Windows входит ряд типовых диалоговых окон, таких как окно выбора загружаемого файла, окно выбора шрифта, окно для настройки принтера и т. д. В Delphi реализованы классы, объекты которых дают программисту удобные способы создания и использования таких окон.
Работа со стандартными диалоговыми окнами осуществляется в три этапа.
Вначале на форму помещается соответствующий компонент и осуществляется настройка его свойств (следует заметить, что собственно компонент-диалог не виден в момент работы программы, видно лишь создаваемое им стандартное окно). Настройка свойств может проходить как на этапе конструирования, так и в ходе прогона программы. Как и для любых других компонентов, программист не должен заботиться о вызове конструктора и деструктора диалога - эти вызовы реализуются автоматически в момент старта и завершения программы.
На втором этапе осуществляется вызов стандартного для диалогов метода Execute, который создает и показывает на экране диалоговое окно. Вызов этого метода обычно располагается внутри обработчика какого-либо события. Например, обработчик выбора опции меню
Открыть файл может вызвать метод Execute Диалога TOpenDialog, обработчик нажатия инструментальной кнопки сохранить может вызвать такой же метод у компонента TSaveDialog и т. д. Только после обращения к Execute на экране появляется соответствующее диалоговое окно. Окно диалога является модальным окном, поэтому сразу после обращения к Execute дальнейшее выполнение программы приостанавливается до тех пор, пока пользователь не закроет окно. Поскольку Execute - логическая функция, она возвращает в программу True, если результат диалога с пользователем был успешным.
Проанализировав результат Execute, программа может выполнить третий этап - использование введенных с помощью диалогового окна данных - имени файла, настроек принтера, выбранного шрифта и т. д.
Проиллюстрируем сказанное следующим примером. Создадим простую программу для просмотра содержимого текстового файла. Для этого на пустую форму поместите компонент TOpenDialog, a также кнопку TButton и редактор TMето. При работе программы щелчок по кнопке будет сигналом о необходимости загрузить в редактор новый файл. Создайте такой обработчик события OnClick этой кнопки:
procedure TForm1.Button1Click(Sender: TObject); var S: String; F: TextFile; begin // Настраиваем диалог на отбор текстовых файлов: OpenDialogI.Filter :== 'Текстовые файлы|*.txt|'+ 'Файлы Паскаля|*.pas'; // Выполняем диалог и анализируем его результат if OpenDialogI.Execute and FileExists(OpenDialogI.FileName) then begin // Результат успешный - пользователь выбрал файл // Открываем файл AssignFile(F, OpenDialogI.FileName) ; Reset(F); Memol.Lines.Clear; // Очищаем редактор while not EOF(F) do // и наполняем его begin ReadLn(F, S) ; Memol.Lines.Add(S) end; CloseFile(F) end end;
В этом разделе :
8 TOpenDialog и TSaveDialog - диалоги открытия и сохранения файлов Свойство FileName: string содержит маршрут поиска и выбранный файл при успешном завершении диалога. Программа может использовать это свойство для доступа к файлу с целью читать из него данные (TOpenDialog) или записывать в него (TSaveDialog).
8 TOpenPictureDialog и TSavePictureDialog - диалоги открытия и сохранения изображений Специализированные диалоги для открытия и сохранения графических файлов.
8 TFontDialog - диалог выбора шрифта Компонент TFontDialog создает и обслуживает стандартное окно выбора шрифта.
8 TColorDialog - диалог выбора цвета Компонент создает и обслуживает стандартное диалоговое окно выбора цвета.
8 TPrintDialog - диалог настройки параметров печати Компонент TPrintDialog создает стандартное диалоговое окно для выбора параметров печати.
8 TPrinterSetupDialog - диалог настройки параметров принтера Компонент создает окно настройки параметров принтера
8 TFindDialog - диалог поиска Стандартное диалоговое окно компонента TFindDialog используется для поиска фрагмента текста.
8 TReplaceDialog - диалог поиска и замены Компонент TReplaceDialog создает и обслуживает окно поиска и замены текстового фрагмента.
| |