
- •Тема: Синхронизация действий средствами компонента tActionList
- •Задание
- •Порядок выполнения работы
- •Технология задания действий средствами ActionList
- •Подсоединение действия из списка Action
- •Создания окон диалогов
- •Описание компонента StaticText
- •Описание компонента LabeledEdit
- •Описание компонента RichEdit
Подсоединение действия из списка Action
С вязь объектов действий с конкретными инициализаторами действий -управляющими элементами типа кнопок, разделов меню и т.д., осуществляется через свойство Action, имеющееся у всех управляющих элементов. Достаточно в объекте раздела меню или в копке SpeedButton установить соответствующее значение Action, и все заданные атрибуты этого действия, включая обработчик события, перенесутся в раздел меню и кнопку.
Например, присоединение действия “Выход” к кнопке Button может производиться следующим образом:
Помещается кнопка на форму.
В Инспекторе объектов в списке свойства Action (или через событие Action) кнопки Button производится соответствующий выбор. После чего свойства Action присваиваются кнопке автоматически (рис. 6).
Подсоединение действий Action к пункту любого меню производится следующим образом:
Помещается компонент, например, PopupMenu на форму.
В Инспекторе объектов в списке событий 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;
}