Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

C++Builder. Учебный курс

.pdf
Скачиваний:
14
Добавлен:
15.11.2022
Размер:
9.54 Mб
Скачать

4.4.6. Свойство ModalResult

Свойство M o d a lR e s u lt используется для закрытия форм, отображаемых методом ShowM odal.

По умолчанию M o d a lR e s u lt имеет значение mrNone (ко­

торое определено как константа со значением 0). Это значение ис­ пользуется для обычных кнопок на форме, которые не должны ее закрывать.

При любом другом значении свойства M o d a lR e su lt нажа­ тие на эту кнопку приведет к закрытию формы и возврату значе­ ния M o d a lR e s u lt. Например, если поместить на форму кнопку и

установить для свойства M o d a lR e s u lt значение mrOk, то при

нажатии этой кнопки форма будет закрыта, a ShowModal возвра­ тит значение mrOk. Это можно использовать следующим образом:

int

r e s u l t

= Form2->ShowModal() ;

if

( r e s u l t

==

mrOk) C a lc O ;

if

( r e s u l t

==

m rC ancel) return;

Возможные значения свойства M o d a lR e su lt можно по­

смотреть в инспекторе объектов.

Если форма закрывается щелчком на системной кнопке за­

крытия окна или нажатием A lt+ F 4 ,

то метод ShowModal воз­

вращает значение m rC a n c e l.

 

 

Пример 4.5

 

 

 

Пример

демонстрирует

использование

свойства

M o d a lR e s u lt в приложениях.

—Создайте приложение с двумя окнами, одно из которых яв­ ляется диалоговым (рис. 4.14).

—Обратите внимание, что при изменении свойства K ind кно­ пок T B itB tn будут также изменены свойства G lyph, C an cel, D e f a u l t ,C a p t i o n и M o d a lR e s u lt.

6. Назначение свойства C an cel кнопок T B utton и

T B itB tn .

7. Назначение свойства M o d a lR e s u lt кнопок T B u tto n и

T B itB tn .

8.Какие кнопки являются кнопками по умолчанию?

9.Как создать радиокнопки?

10.Как создать кнопку-переключатель?

Упражнения

1. Создайте в программе радиокнопки, предназначенные, на­

пример, для выравнивания текста

=

—. Программа должна

только обеспечивать переключение кнопок.

2. Создайте в программе несколько

кнопок, которые будут

играть роль переключателей, предназначенные, например, для из-

[ж| I к I ГчI

менения стиля шрифта1—11—11— 1 Программа должна обеспечи­ вать только создание кнопок-переключателей.

4.5.Диалоговые компоненты

Всостав Windows входит ряд типовых диалоговых окон, та­ ких как окно выбора загружаемого файла, окно выбора шрифта, окно для настройки принтера и т.д.

Работа со стандартными диалоговыми окнами осуществляется

втри этапа.

-Вначале на форму помещается соответствующий компонент и осуществляется настройка его свойств (следует заметить, что собственно компонент-диалог не виден в момент работы програм­ мы, видно лишь создаваемое им стандартное окно). Настройка свойств может проходить как на этапе конструирования, так и в ходе выполнения программы. Как и для любых других компонен­ тов, программист не должен заботиться о вызове конструктора и деструктора диалога. Эти вызовы реализуются автоматически в момент старта и завершения программы.

-Н а втором этапе осуществляется вызов стандартного для

диалогов метода E x e c u te , который создает и показывает на экра­ не диалоговое окно. Вызов этого метода обычно располагается внутри обработчика какого-либо события. Например, обработчик

выбора опции меню «О ткрыть

файл» может вызвать метод

E x e c u te диалога T O p en D ia lo g ,

обработчик нажатия инстру­

ментальной кнопки «С охран и ть» может вызвать такой же метод у компонента T S a v e D ia lo g и т.д. Только после обращения к ме­ тоду E x e c u te на экране появляется соответствующее диалоговое окно. Окно диалога является модальным окном, поэтому сразу по­ сле обращения к E x e c u te дальнейшее выполнение программы приостанавливается до тех пор, пока пользователь не закроет окно. Поскольку E x e c u te - логическая функция, она возвращает в про­ грамму t r u e , если результат диалога с пользователем был успеш­ ным.

-Проанализировав результат E x e c u te , программа может выполнить третий этап - использование введенных с помощью

диалогового окна данных (имени файла, настроек принтера, вы­ бранного шрифта и т.д.).

Все

диалоговые компоненты расположены на странице

D ia lo g s

палитры компонентов.

 

4.5.1. Компонент TOpenDialog и TSaveDialog

Компонент T O p en D ia lo g предназначен для поддержки опе­ рации открытия файлов. При использовании этого компонента вы­ зывается стандартное диалоговое окно (рис. 4.15). Компонент

T S a v e D ia lo g используется для указания пользователем имени

файла, предназначенного

для сохранения.

Компоненты T O pen­

D ia lo g и T S a v e D ia lo g

имеют общие

свойства, основные из

которых перечислены ниже.

 

3.Основные свойства компонента TFontDialog.

4.Основные свойства компонента TColorDialog.

5.Какой метод диалоговых компонентов является основным?

Упражнения

1.Написать программу для просмотра текстовых файлов.

2.Написать программу, которая в диалоговом режиме изме­ няет шрифт компонента.

3.Написать программу, которая в диалоговом режиме изме­ няет цвет шрифта и цвет фона компонента.

4.6.Меню, индикаторы, радиокнопки, компоненты выбора из списков, панели

Вэтом разделе рассмотрены основные принципы работы со следующими компонентами:

- компоненты меню (TM ainM enu,

TPopupM enu);

- индикаторы (T C heckB ox, T C h eckL istB ox);

- радиокнопки (T R a d io B u tto n ,

T R adioG roup);

-

компоненты выбора из списков (T L istB o x , TComboBox);

-

панели ( T P a n e l, TGroupBox).

4.6.1.Компоненты для создания меню

ВC++Builder имеется два компонента, представляющие ме­ ню: TM ainM enu - главное меню и TPopupM enu - контекстное меню. Оба компонента расположены на странице S ta n d a rd . Это невизуальные компоненты, т.е. место их размещения на форме в процессе проектирования не имеет никакого значения для пользо­ вателя.

Сразработкой главного меню приложения вы познакомились при программировании текстового редактора. В этом разделе не­

обходимо познакомиться с использованием компонента

TPopupM enu.

Компонент TM ainM enu позволяет конструировать и созда­ вать полосу главного меню формы и выпадающие меню. Компо­ нент невизуальный.

Каждый пункт меню, в свою очередь, является компонентом T M enuItem . Обратите внимание, что компонент TM ainM enu

имеет очень мало свойств и одно событие O nC hange. Дело в том, что работа меню полностью определяется компонентами TM enu­

Ite m .

Для создания главного меню используется редактор меню, который позволяет быстро разрабатывать меню любой структуры. Для входа в редактор меню необходимо дважды щелкнуть левой кнопкой мыши по компоненту TM ainM enu. Редактор меню всегда оставляет пустой пункт в конце каждого всплывающего меню и справа от строки меню. Они используются только в редакторе ме­ ню для ввода вновь создаваемого пункта и не отображаются при выполнении программы.

Ниже перечислены основные особенности создания меню программы:

-д л я подчеркивания символа меню необходимо перед этим символом ввести амперсанд &;

-для добавления разделителя нужно установить для свойства C a p tio n значение

-свойство S h o r t c u t используется для назначения горячих клавиш пунктам меню;

-д л я вставки пункта меню используется клавиша I n s e r t ,

для удаления - клавиша D e le te .

Рекомендация. Делайте свои меню по возможности ближе к стандартным. Используйте те же подчеркнутые символы, что и в других программах Windows. Помните также, что многоточие

в пункте меню означает, что выбор данного пункта приведет к от­ крытию диалогового окна.