C++Builder. Учебный курс
.pdfКомпонент ТРорирМ епи позволяет конструировать и созда вать всплывающие контекстные меню, появляющиеся при нажа тии пользователем правой кнопки мыши в рабочей области формы или компонента.
Компонент невизуальный.
Компонент ТРорирМ епи ассоциируется со свойством
PopupM enu формы или компонента.
Контекстное меню создается так же, как и главное, с помо щью редактора меню.
Вопросы для самоконтроля
1. Какие компоненты используются для создания меню?
2. В чем заключается основное отличие компонентов
TM ainM enu и ТРорирМ епи?
3.Как создать пункты меню программы?
4.Как вставить или удалить пункт меню?
5.Как определить клавишу быстрого выбора для пункта меню?
6.Как добавить разделительную черту в меню?
7.Как назначить горячие клавший пункту меню?
8.Порядок использования компонента ТРорирМепи.
4.6.2. Индикаторы
Роль индикаторов в приложениях C++Builder могут играть компоненты T C heckB ox и T C h eck L istB o x .
Использование компонентов в программе не представляет трудностей. Основным событием компонента TCheckBox являет ся событие O n C lic k , которое возникает при изменении состояния компонента. Обычно необходимо переключить состояние другого компонента, связанного с TC heckB ox или в зависимости от со стояния компонента TC heckB ox выполнить те или другие дейст вия.
Компонент T C heckB ox (страница S ta n d a r d ) даёт пользо
вателю возможности включения/выключения некоторого режима или индикации включенного режима. Состояние индикатора опре деляют свойства C h e c k e d или S t a t e . Флажок может иметь до трех состояний, в зависимости от стиля: установлен, сброшен или
заблокирован. Если свойство A llo w G ra y e d имеет значение
f a l s e (значение по умолчанию), то такой флажок может быть только установлен или сброшен. Свойство C h e c k e d в этом случае можно использовать для того, чтобы определить, установлен
флажок или нет. Если C h e c k e d равно t r u e , то флажок уста новлен.
Когда свойство A llo w G ra y e d установлено в t r u e , флажок может быть в любом из трех состояний. В этом случае для опреде ления или задания состояния флажка необходимо использовать
свойство S t a t e . S t a t e может принимать значения c b C h eck ed , cb U n C h eck ed или c b G ra y ed .
Надпись задается свойством C a p tio n , а ее расположение по
отношению к индикатору - свойством A lig n m e n t.
Чтобы сделать флажок доступным только для чтения, помес
тите его на |
панель и |
измените |
свойство E n a b le d панели на |
|
f a l s e . |
|
|
|
|
Ниже |
показан |
пример |
использования |
компонентов |
T C heckB ox в программе.
Пример 4.6
- Создайте новое приложение.
-Разместите компоненты, требуемые для выполнения про граммы (рис. 4.19).
0 СтрокаC O C T O M W
0 Переносnoсловам
Рис. 4.19. Использование компонентов TCheckBox в программе
-Н и ж е приведены обработчики события O n C lick для каж дого компонента.
void __f a s t c a l l T Form l: : C heckB oxlC lick (TObject *S ender)
{
S ta tu s B a r l- > V isib le = ! S ta tu s B a rl- > V is ib le ;
}
/ / ----------------------------------------------------------------------------------------
void __f a s t c a l l T Form l: : CheckBox2Click (TObject *S ender)
{
Memol->WordWrap = !Memol->WordWrap; if (Che ckBox2- >Che ek e d )
M em o l-> S cro llB ars |
= |
s s V e r tic a l; |
e ls e |
|
|
M em o l-> S crollB ars |
= |
ssB o th ; |
}
- Запустите приложение и разберитесь с работой каждого об работчика.
Компонент T C h e c k L is tB o x (страница A d d i t i o n a l ) - ана
лог компонента T L is tB o x , но около каждой строки списка име ется индикатор, состояние которого пользователь может изменять.
Состояние индикаторов определяют два свойства: S t a t e и
C h eck ed . Оба эти свойства являются индексированными масси вами. Индексы начинаются с 0. Общее количество элементов оп
ределяется свойством I te m s - > C ount. Свойства S t a t e и
C h e c k e d можно устанавливать программно или читать, определяя установки пользователя. Например, оператор
C h e c k L i s t B o x l- > C h e c k e d [1] = true;
устанавливает индикатор второй строки списка C h e c k L is tB o x l в состояние выбранного.
В компоненте T C h e c k L is tB o x имеется также событие Оп-
C lic k C h e c k , возникающее при каждом изменении пользовате лем состояния индикаторов. Его можно использовать для обработ ки результатов изменения.
Вопросы для самоконтроля
1. Приведите примеры использования компонента TC heckB ox в известных приложениях Windows.
2.Основные свойства компонента TC heckB ox.
3.Основное событие компонента T C h eck B o x .
|
4.6.3. Радиокнопки |
|
|
Радиокнопки |
(компоненты |
T R a d io B u tto n |
и |
T R ad io G ro u p ) обычно используются в составе группы кнопок и, как правило, представляют набор опций, из которых только одна может быть выбрана. Хотя можно использовать радиокнопку в единственном числе, делать это не рекомендуется, чтобы не ввести в заблуждение пользователя. В этом случае вместо радиокнопки следует использовать флажок.
Любые радиокнопки (T R a d io B u tto n ), помещенные в фор му, будут автоматически рассматриваться как часть одной и той же группы. Если нужно иметь более одной группы радиокнопок, функционирующих независимо друг от друга, необходимо вос пользоваться компонентом T R adioG roup . Он позволяет быстро задать группу радиокнопок с заголовком.
Для определения группы радиокнопок можно также исполь зовать компонент TG roupB ox, который не так удобен в использо вании, но зато универсален. Можно поместить в группу элемент управления любого типа. После того как элементы управления размещены в групповом окне, они могут перемещаться вместе с этим окном как единое целое во время разработки программы.
4.6.3.1. Компонент TRadioButton
Компонент T R a d io B u tto n является кнопкой с зависимой фиксацией и предназначен для выбора одной опции из нескольких взаимоисключающих. Поэтому кнопки объединяются в группу, состоящую из нескольких элементов.
Состояние кнопки содержится в свойстве C hecked. При включении или отключении кнопки происходит событие Оп-
C lic k , в обработчике которого необходимо выполнить действия, зависящие от текущего состояния кнопки.
Для группировки кнопок с зависимой фиксацией внутри фор мы их необходимо разместить внутри компонента TPane 1 или
TG roupB ox.
Ниже показаны примеры использования компонентов.
Пример 4.7
-Создайте новое приложение.
-Разместите на форме компонент TGroupBox, а внутри него
3компонента T R a d io B u tto n .
-Измените свойства компонентов в соответствии с рис. 4.20.
■f.Forml
Количество ступеней
® 1
0 2
0 3
Labdl
Рис. 4.20. Использование компонентов T R adioB utton в программе
- Объявите в программе глобальную переменную п (количе ство ступеней ракеты) целого типа.
-Создайте обработчик события O n C re a te формы. Событие
O n C re a te возникает при создании формы, и его можно использо вать для инициализации значений глобальных переменных в про грамме. В данном случае необходимо проверить состояние свойст ва C h e c k e d каждого компонента T R a d io B u tto n .
void __fastcall T F orm l: : F o rm C reate(T O b ject *Sender)
{
if (R ad io B u tto n l-> C h eck ed )
{
П= 1;
L a b e ll-> C a p tio n = "О дноступенчатая р а к е т а " ; return;
}
if (R ad io B u tto n 2 - >Checked)
{
П = 2 ;
L a b e ll-> C a p tio n = "Д вухступенчатая р а к е т а " ; return;
}
if (R adioB utton3 -> C hecked)
{
n = 3;
L a b e l l - > C a p t i o n = "Т рехступенчатая р а к е т а " ; return;
}
}
Примечание. Можно также в обработчике события O n C re a te не проверять состояние компонентов T R ad io B u tto n , а присвоить значения переменным и свойствам в соответствии с начальными установками программы. В этом случае обработчик события O n C re a te может выглядеть следующим образом:
void __fastcall T F o rm l: : F o rm C reate (T O b jec t *Sender)
{
П = 1;
L a b e l l - > C a p t i o n = "Одноступенчатая р а к е т а " ;
}
Но в этом случае при изменении начальных установок необ ходимо будет изменить и обработчик события O n C reate.
-Напишите обработчик события O n C lic k для первого ком понента T R a d io B u tto n . В этом случае нет необходимости про верять состояние компонента.
void __fastcall T F o rm l: :R a d io B u tto n lC lic k (TO bject ♦ S en d er)
{
n = 1;
L a b e l l - > C a p t i o n = "Одноступенчатая р а к е т а " ;
}
-А налогично напишите обработчики событий O n C lick для
двух других компонентов T R ad io B u tto n .
- Запустите приложение и проверьте правильность его работы.
4.6.3.2. |
Компонент TRadioGroup |
Компонент T R ad io G ro u p |
является панелью группы радио |
кнопок. При помощи компонента T R adioG roup можно помес тить в форму более одной группы радиокнопок.
-Свойству |
I te m ln d e x компонента T R adioG roup при |
свойте значение 0. |
|
-Измените |
свойство C a p tio n компонента T R adioG roup |
в соответствии с рис. 4.22.
- |
Разместите компонент T L a b e l на форме. |
- |
Объявите в программе глобальную переменную п (количе |
ство ступеней ракеты) целого типа.
f Form l
Количество ступеней
0 1
0 2
Оз
labell
Рис. 4.22. Использование компонента TRadioGroup в программе
- Создайте обработчик события O n C re a te формы.
void __fastcall T Form l: : Form C reate(T O bject *Sender)
{
n = 1;
L a b e ll-> C a p tio n = "Одноступенчатая р а к е т а " ;
}
-С оздайте обработчик события O n C lick компонента
T R ad io G ro u p .
void __fastcall T Form l: : R adioG rouplC lick (TObject ♦Sender)
{
switch (RadioG roup1-> 11em lndex)
{
case |
|
0: |
|
|
n |
= |
1; |
|
|
L a b e l l - > C a p t i o n |
= "О дн оступ ен чатая |
р а к е т а " ; |
||
break; |
|
|
||
case |
|
1: |
|
|
n |
= |
2 ; |
|
|
L a b e l l - > C a p t i o n |
= "Д в у х сту п ен ча тая |
р а к е т а " ; |
||
break; |
|
|
||
case |
|
2: |
|
|
n |
= |
3; |
|
|
L a b e l l - > C a p t i o n = "Т р е х с т у п е н ч а т а я р а к е т а " ; break;
default:
}
}
- Запустите приложение и проверьте правильность его работы.
Вопросы для самоконтроля
1. Приведите примеры использования компонентов
T R a d io B u tto n и T R adioG roup в известных приложения Windows. 2. Основные свойства и события компонента T R a d io
Bu tto n .
3.Основные свойства и события компонента T R ad io G ro u p .
4. Основные отличия компонентов T R a d io B u tto n |
и TRa |
d io G ro u p . |
|
5. Какие компоненты используются для создания группы ра^ |
|
диокнопок T R a d io B u tto n . |
|
6. Когда возникает событие O n C re a t^ формы, и |
в каких |
случаях это событие обычно используется? |
|