Компонент | Описание |
OpenDialog«Открыть файл» | Предназначен для создания окна диалога «Открыть файл». |
SaveDialog«Сохранить файл» | Предназначен для создания окна диалога «Сохранить файл как». |
OpenPictureDialog«Открыть рисунок» | Предназначен для создания окна диалога «Открыть рисунок», открывающего графический файл. |
SavePictureDialog«Сохранить рисунок» | Предназначен для создания окна диалога «Сохранить рисунок» — сохранение изображения в графическом файле. |
FontDialog«Шрифты» | Предназначен для создания окна диалога «Шрифты» — выбор атрибутов шрифта. |
ColorDialog«Цвет» | Предназначен для создания окна диалога «Цвет» — выбор цвета. |
PrintDialog«Печать» | Предназначен для создания окна диалога «Печать». |
PrinterSetupDialog«Установка принтера» | Предназначен для создания окна диалога «Установка принтера». |
FindDialog«Найти» | Предназначен для создания окна диалога «Найти» — контекстный поиск в тексте. |
ReplaceDialog«Заменить» | Предназначен для создания окна диалога «Заменить» — контекстная замена фрагментов текста. |
Windows располагает целым набором стандартных диалогов, которые могут использоваться любым приложением. В распоряжение программиста среда предоставляет компоненты, соответствующие этим диалогам; найти их можно на вкладке Dialogs. Эти компоненты относятся к невизуальным.
Применить в приложении стандартное диалоговое окно можно так: поместите в форму компонент, соответствующий диалоговому окну. На форме появится только значок объекта, содержащего свойства диалога. Само окно будет создано только при работе программы в момент вызова диалога с помощью метода Execute().
На вкладке Dialogs всего восемь компонентов: шесть из них модальные, а два – FindDialog и ReplaceDialog – нет. Метод Execute() для этих диалогов создает окно и сразу же возвращает управление программе. Окно продолжает существовать, пока его не закроет пользователь. При необходимости произвести поиск или замену в тексте, вызываются обработчики событий данных компонентов.
Для обеспечения возможности использования в приложении стандартных диалогов Windows открытия и сохранения файлов нужно поместить в форму компоненты OpenDialog и SaveDialog (страница Dialogs палитры компонентов). Основными свойствами классов TOpenDialog и TSaveDialog являются:
Filter - список названий и масок шаблонов для выводимого списка файлов текущего каталога, например: Все файлы (*.*)|*.*),
Options - параметры настройки стандартного диалога:
1) ofHideReadOnly – скрыть выключатель «только чтение»,
2) ofOverwritePrompt – выдать запрос на подтверждение попытки перезаписать существующий файл,
3) ofPathMustExist и ofFileMustExist – выдать сообщение об ошибке при попытке ввести имя несуществующего каталога или файла,
4) ofNoReadOnlyReturn – выдать сообщение об ошибке при попытке сохранить файл на защищенном от записи устройстве,
5) и др.
FileName - строка с полным именем выбранного пользователем файла (перед отображением диалога значение этого свойства используется для инициализации текстового редактора с именем файла).
Для модального выполнения стандартного диалога в классе TCommonDialog предназначен метод
bool Execute(); /* возвращает значение true, если пользователь ввел имя файла, и false, если он отказался от ввода */
Метода нужно поместить в обработчике события onclick соответствующей команды меню (например, «Открыть» или «Сохранить как»). Глобальная функция
AnsiString ExtractFileName(AnsiString);
может использоваться для выделения собственно имени файла и его расширения из полного имени файла (например, для отображения его в заголовке формы).
Пример использования:
if (OpenPictureDialog1->Execute())
{
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
}
Пример использования:
if (SavePictureDialog1->Execute())
{
Image1->Picture->SaveToFile(SavePictureDialog1->FileName);
}
Пример использования:
if(OpenDialog1->Execute())
{
Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
}
Пример использования:
if(SaveDialog1->Execute())
{
Memo1->Lines->SaveToFile(OpenDialog1->FileName);
}
Основной метод, которым производится обращение к любому диалогу, — Execute. Эта функция открывает диалоговое окно и, если пользователь произвел в нем какой-то выбор, то функция возвращает true. При этом в свойствах компонента-диалога запоминается выбор пользователя, который можно прочитать и использовать в дальнейших операциях. Если же пользователь в диалоге нажал кнопку Отмена или клавишу Esc, то функция Execute возвращает false.