Создания окон диалогов
Страница Dialogs содержит компоненты, используемые для создания различных диалоговых окон, общепринятых в приложениях Windows. Применение поставляемых в составе C++Builder диалоговых окон помогает сэкономить время на разработку и придать вашему приложению совместимость с принятыми в Windows нормами диалога. На странице Dialogs представлены компоненты для вызова стандартных диалогов Windows. Объекты, представленные на данной странице, невидимы во время выполнения и вызов диалогов происходит программно. К таким стандартным диалогам относятся:
TOpenDialog – для открытия файлов;
TSaveDialog - для сохранения файлов;
TFontDialog - для создания окна диалога "Шрифты";
TСolorDiolog – для создания окна диалога "Цвет".
Открытие соответствующего диалога осуществляется методом Execute. Если в диалоге пользователь нажмет кнопку Ok, диалог закрывается, метод Execute возвращает true, и выбранные установки отображаются в свойствах, например, Font или Color соответствующих визуальных компонентов. Если же пользователь отказался от диалога (нажал кнопку Отмена или клавишу Esc), то метод Execute возвращает false.
Компоненты OpenDialog и SaveDialog вызывают стандартные диалоги Windows открытия и сохранения файлов. Эти компоненты имеют свойства FileName, которое можно задать и перед обращением к диалогу. Тогда оно появится в диалоге как значение по умолчанию в окне «Имя файла».
Типы искомых файлов, появляющиеся в диалоге в выпадающем списке «Тип файла» задаются свойством Filter. В процессе проектирования это свойство проще всего задать с помощью редактора фильтров, который вызывается нажатием кнопки с многоточием около имени этого свойства в Инспекторе Объектов. При этом открывается окно редактора, вид которого показан на рис.2.. В его левой панели Filter Name вы записываете тот текст, который увидит пользователь в выпадающем списке Тип файла диалога. А в правой панели Filter записываются разделенные точками с запятой шаблоны фильтра. В примере на рисунке задано три фильтра: текстовых файлов с расширениями .txt и .rtf, файлов документов с расширениями .doc и любых файлов с шаблоном *.*.
Рис.2. Диалоговое окно настройки фильтра
Примеры
Пример 1. С использованием компонента FontDialog выбрать нужный фонт для метки Label1.
Решение:
if ( FontDialog1->Execute)
Label1->Font = FontDialog1->Font;
Пример 2. С использованием компонента СolorDialog выбрать нужный цвет для однострочного редактора Edit1.
Решение:
if (ColorDialog1->Execute)
Edit1->Color = ColorDialog1->Color;
Пример 3. С использованием компонента SaveDialog выбрать имя файла для сохранения содержимого Memo1, записать имя этого файла в компонент LabeledEdit.
Решение:
// записать поясняющий текст в поле Caption компонента LabeledEdit
LabeledEdit1->EditLabel->Caption = " Имя выходного файла";
if (SaveDialog1->Execute())// если диалог выполнен успешно
{
// занести в Ptr имя файла, указанного в диалоге
AnsiString Ptr = SaveDialog1 ->FileName;
// перенести строки из Memo1 в файл с именем Ptr
Memo1->Lines->SaveToFile(Ptr);
// в поле Text компонента LabeledEdit записать имя файла
LabeledEdit1->Text = Ptr;
}
