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

1102

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

Компонент ТРорирМ епи позволяет конструировать и созда­ вать всплывающие контекстные меню, появляющиеся при нажа­ тии пользователем правой кнопки мыши в рабочей области формы или компонента.

Компонент невизуальный.

Компонент ТРорирМ епи ассоциируется со свойством

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^ формы, и

в каких

случаях это событие обычно используется?

 

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