Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_1_Action+Meню и диалоги+.doc
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
357.38 Кб
Скачать

Подсоединение действия из списка Action

С вязь объектов действий с конкретными инициализаторами действий -управляющими элементами типа кнопок, разделов меню и т.д., осуществляется через свойство Action, имеющееся у всех управляющих элементов. Достаточно в объекте раздела меню или в копке SpeedButton установить соответствующее значение Action, и все заданные атрибуты этого действия, включая обработчик события, перенесутся в раздел меню и кнопку.

Например, присоединение действия “Выход” к кнопке Button может производиться следующим образом:

    1. Помещается кнопка на форму.

    2. В Инспекторе объектов в списке свойства Action (или через событие Action) кнопки Button производится соответствующий выбор. После чего свойства Action присваиваются кнопке автоматически (рис. 6).

Подсоединение действий Action к пункту любого меню производится следующим образом:

    1. Помещается компонент, например, PopupMenu на форму.

    2. В Инспекторе объектов в списке событий Action производится соответствующий выбор. После чего свойства Action присваиваются команде автоматически (рис. 6, 7).

Рис.6. Подсоединение действия из списка Action к кнопке Button

а)

б)

в)

Рис.7. Подсоединение действия из списка Action к команде PopupMenu: а) помещается компонент; б) двойным щелчком вызывается редактор; в) из списка событий Action выбирается нужное.

Создания окон диалогов

Страница 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;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]