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

Метода(c++)

.pdf
Скачиваний:
30
Добавлен:
04.06.2022
Размер:
1.77 Mб
Скачать

d.Установить свойства компонентов lbl1 и lbl2 так, чтобы при запуске они бы не отображались в окне, а флажок cbxModul находился бы в снятом неустановленном) состоянии.

e.Перейти в обработчик события Click для компонента cbxModul и самостоятельно написать код, по которому при установке флажка компоненты lbl1 и lbl2 становились бы видимыми, а при снятии – не видимыми.

8.Запустить проект, проверить правильность работы программы.

9.Сохранить проект.

10.Разместить на форме две радиокнопки с подписями «Дневная», «Вечерняя».

11.Запустить проект. Убедиться, что лишь одна из них может находиться в установленном (выбранном) состоянии.

12.Добавить три новые радиокнопки с подписями «ФРТ», «ФКТИ», «ФИБС».

13.Запустить, убедиться, что по-прежнему лишь одна из всех добавленных на форму радиокнопок может находиться в установленном состоянии.

14.Закрыть проект без сохранения изменений

Краткие теоретические сведения: III. Компонент Panel (панель)

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

Таблица 14

 

Название

 

 

 

 

Смысл

 

 

 

 

 

свойства

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

BevelInner

 

Задает вид внутренней фаски панели

 

 

 

 

 

 

Возможные значения:

 

 

 

 

 

 

 

 

bvNoe

 

Внутренней фаски нет. Значение по

 

 

 

 

 

 

 

 

 

 

 

умолчанию

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bvLowered

 

фаска выглядит утопленной в элемент

 

 

 

 

 

 

управления

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bvRaised

 

Фаска

выглядит

приподнятой

над

 

 

 

 

 

 

элементом управления

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bvSpace

 

Фаска заменяется отступом

 

 

 

 

 

 

 

 

 

 

 

 

 

 

60

 

BevelOuter

Задает вид внешней фаски панели

 

 

 

Возможные значения, такие же, как и у свойства

 

 

 

BevelInner

 

 

 

 

 

 

 

 

 

 

 

BevelWidth

Определяет ширину внешней части панели

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 14 (продолжение)

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

BorderStyle

 

Определяет стиль бордюра

 

 

 

 

Возможные значения:

 

 

 

 

bsNone

 

нет рамки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bsSingle

компонент по периметру обводится

 

 

 

 

 

 

 

линией толщиной в 1 пиксель

 

 

 

 

 

 

 

 

 

 

 

BorderWidth

 

Определяет ширину бордюра

 

 

 

 

 

 

 

FullRepaint

 

Разрешает/запрещает перерисовку панели и всех ее

 

 

 

 

дочерних элементов при изменении ее размеров

 

 

 

 

Возможные значения:

 

 

 

 

 

 

 

 

 

 

 

True

 

Перерисовка разрешена

 

 

 

 

 

 

 

 

 

 

 

 

False

 

Перерисовка запрещена

 

 

 

 

 

 

 

 

 

 

 

IV. Компонент GroupBox (групповая панель, групповое окно)

Используется для группирования управляющих элементов (кнопок, радиокнопок, флажков и т. д.), функционально связанных друг с другом. Имеет заголовок, но не позволяет регулировать оформление границ.

V. Компонент RadioGroup (панель группы радиокнопок)

Используется для отображения регулярно расположенных (столбцами и столбиками) радиокнопок, подписи которых имеют близкую длину. Важнейшие свойства компонента представлены в табл 15.

 

 

 

 

Таблица 15

 

 

 

 

 

 

 

 

Название

 

 

Смысл

 

 

свойства

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

2

 

 

 

 

 

 

 

Items

Определяет

количество радиокнопок и их надписи.

 

 

 

Для редактирования списка радиокнопок следует

 

 

 

нажать на

кнопку

справа от названия свойства в

 

 

 

окне ObjectInspector.

 

 

 

Для программного получения надписей радиокнопок

 

 

 

следует использовать конструкцию вида:

 

 

 

<ИмяКомпонентаRadioGroup>->Items->Strings[<ИндексНужнойРадиокнопки>]

 

 

 

 

 

 

 

Columns

Определяет

количество столбцов, в которых будут

 

 

 

 

 

 

 

61

располагаться кнопки (не более 17).

ItemIndex Содержит индекс (номер) выбранной (выделенной) радиокнопки. Нумерация начинается с 0!!!! Если ItemIndex= -1 (значение по умолчанию), то ни одна радиокнопка не выбрана.

Упражнение 2. Компоновка компонентов CheckBox и RadioButton

1.Создать новый проект, имя файла формы FrmGroup, имя файла проекта –

PrGroup.

2.Добавить на форму компонент RadioGroup

3.Установить для компонента:

подпись в «Факультет»,

имя – rgrpF,

добавить радиокнопки с подписями «ФИБС», «ФКТИ», «ФЭА», «ФРТ», «ФЭЛ», «ФЭМ», «ГФ», «ОФ».

4.Последовательно установить количество столбцов радиокнопок в 2, 3, 4, 5. Просмотреть получающийся эффект.

5.Изменить подписи радиокнопок, как показано в табл. 16.

Таблица 16

Старая подпись

Новая подпись

 

 

ФРТ

Факультет радиотехники и телекоммуникаций

 

 

ФЭЛ

Факультет электроники

 

 

ОФ

Открытый факультет

 

 

6.Вновь последовательно установить количество столбцов радиокнопок в значения 2, 3, 4. Просмотреть получающийся эффект.

7.Добавить на форму компонент Panel. Свойство Caption очистить.

8.Меняя свойства BevelInner, BevelOuter, BevelWidth, BorderStyle,

BorderWidth самостоятельно просмотреть варианты оформления панели.

9.Разместить на Panel три компонента RadioButton. Подписи компонентов:

«y = ax + b», «y = sin x», «y = log x»

62

10.Изменить количество и подписи радиокнопок на панели, как показано на рис. 13.

11.Запустить проект, убедиться, что ни одна из радиокнопок автоматически не выбрана.

12.Закрыть проект и сделать так, чтобы автоматически при запуске выбиралась бы радиокнопки с подписью «y = sin x» и «х = 100».

13.Запустить проект и убедиться в

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

Рис. 13. Вид панели

аргумента функции и типа функции.

14.Добавить на панель Panel по два компонента Label и Edit. Подпись первого компонента Label – «а =», подпись второго – «b =». Написать соответствующие обработчики событий, чтобы при выборе варианта «y = ax + b» добавленные компоненты Label и Edit становились доступны, а при выборе других видов функций – недоступными. Убедиться, что при запуске приложения добавленные компоненты также недоступны.

15.Добавить на форму кнопку с подписью «Вычислить», компонент Label.

16.Запрограммировать обработчик события Click для кнопки «Вычислить» так, чтобы при нажатии на кнопку в компоненте Label выводился бы результат вычисления функции в заданной точке.

17.Разместить на форме компонент GroupBox и перенести на него все компоненты, располагающиеся в Panel. Подпись GroupBox установить в «Вид функции».

18.Запустить проект и проверить правильность его работы.

I. Компонент StringGrid

Вкладка на палитре компонент – Additional. Предназначен для ввода/вывода текстовых табличных данных. Важнейшие свойства компонента представлены в табл. 17.

 

 

 

 

 

 

Таблица 17

 

 

 

 

 

 

 

 

 

Название

 

 

 

Смысл

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

2

 

 

 

 

 

 

 

 

 

 

BorderStyle

Определяет

стиль

границ

таблицы. Возможные

 

 

 

значения:

 

 

 

 

 

 

 

 

 

 

 

 

bsNone

 

Границы

нет. Применяется в том

 

 

 

 

 

случае,

когда

таблица размещается

 

 

 

 

 

 

 

 

 

63

 

 

 

 

 

 

 

внутри

какого-либо

другого

 

 

 

 

 

 

 

 

компонента, внешние границы которого

 

 

 

 

 

 

 

 

являются

также

внешними

границами

 

 

 

 

 

 

 

 

компонента StringGrid. В этом случае

 

 

 

 

 

 

 

 

таблица

более гармонично

вписывается

 

 

 

 

 

 

 

 

в этот компонент.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bsSingle

Граница

– линия, очерчивающая таблицу

 

 

 

 

 

 

 

 

по периметру

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ColCount

 

Количество столбцов в таблице

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Color

 

Цвет «не заголовочных» ячеек таблицы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ctrl3D

 

Управляет объемным/плоским видом компоненты.

 

 

 

 

Возможные значения:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 17 (продолжение)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ctrl3D

 

 

True

 

Компонент объемный

 

 

 

 

 

 

 

 

(продолжениие)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

False

 

Компонент плоский

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Default-

 

 

Автоматически

устанавливаемая

ширина столбцов

 

 

ColWidth

 

 

таблицы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Default-

 

 

Автоматически

устанавливаемая

высота

строк

 

 

RowHeight

 

 

таблицы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FixedCols

 

 

Определяет количество «фиксированных» столбцов,

 

 

 

 

 

 

не участвующих

в горизонтальной

прокрутке.

 

 

 

 

 

 

«Фиксированные»

столбцы

 

применяются

для

 

 

 

 

 

 

размещения заголовков столбцов таблицы

 

 

 

 

 

 

 

 

 

 

FixedRows

 

 

Определяет количество «фиксированных» строк, не

 

 

 

 

 

 

участвующих

в

вертикальной

прокрутке.

 

 

 

 

 

 

«Фиксированные»

строки

 

применяются

для

 

 

 

 

 

 

размещения заголовков строк таблицы

 

 

 

 

 

 

 

 

 

 

 

FixedColor

 

 

Цвет фона фиксированных строки и столбцов

 

 

 

 

 

 

таблицы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GridLineWidth

 

 

Ширина линии-разделителя между ячейками таблицы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

64

 

Options

 

позволяет дополнительно настроить внешний вид и

 

 

 

 

 

 

поведение

компонента

StringGrid.

Свойство

 

 

 

 

 

 

содержит 15 элементов, которые в Object Inspector

 

 

 

 

 

 

могут принимать значение True либо False:

 

 

 

 

 

 

 

 

 

 

goFixedVertLine

 

Есть/нет

вертикальные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

разделительные

 

линии

 

 

 

 

 

 

 

 

 

 

 

между

 

 

ячейками

 

 

 

 

 

 

 

 

 

 

 

фиксированной зоны

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

goFixedHorzLine

 

Есть/нет

горизонтальные

 

 

 

 

 

 

 

 

 

 

 

разделительные

 

линии

 

 

 

 

 

 

 

 

 

 

 

между

 

 

ячейками

 

 

 

 

 

 

 

 

 

 

 

фиксированной зоны

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

goVertLine

 

 

 

 

Есть/нет

вертикальные

 

 

 

 

 

 

 

 

 

 

 

разделительные

 

линии

 

 

 

 

 

 

 

 

 

 

 

между обычными ячейками

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

goHorzLine

 

 

 

 

Есть/нет

горизонтальные

 

 

 

 

 

 

 

 

 

 

 

разделительные

 

линии

 

 

 

 

 

 

 

 

 

 

 

между обычными ячейками

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

goRangeSelect

 

Разрешение/запрет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выделения

региона

ячеек

 

 

 

 

 

 

 

 

 

 

 

мышкой

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

goDrawFocusSelected

 

Выделять/не

 

выделять

 

 

 

 

 

 

 

 

 

 

 

цветом

ячейку,

имеющую

 

 

 

 

 

 

 

 

 

 

 

фокус

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 12 (продолжение)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Options

 

 

goRowSizing

 

Разрешение/запрет

на

изменение

 

 

(продолжение)

 

 

 

 

 

мышкой высоты строки таблицы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

goColSizing

Разрешение/запрет на изменение

 

 

 

 

 

 

 

 

мышкой ширины столбца таблицы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

goRowMoving

 

Разрешение/запрет

передвижения

 

 

 

 

 

 

 

 

строки таблицы мышкой (изменять

 

 

 

 

 

 

 

 

её индекс)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

goColMoving

 

Разрешение/запрет

передвижения

 

 

 

 

 

 

 

 

столбца таблицы мышкой (изменять

 

 

 

 

 

 

 

 

её индекс)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

goEditing

 

Разрешение/запрет

 

 

 

на

 

 

 

 

 

 

 

 

редактирование ячеек

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

goTabs

 

определяет

поведение

фокуса

при

 

 

 

 

 

 

 

 

нажатии клавиши Tab:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

True

 

 

фокус

перемещается

на

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

65

 

 

 

 

 

 

 

 

 

соседнюю ячейку таблицы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

False

фокус

перемещается

на

 

 

 

 

 

 

 

 

 

 

компонент,

следующий

в

 

 

 

 

 

 

 

 

 

 

списке TabOrder

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

goRowSelect

Выделять/не

выделять

цветом

всю

 

 

 

 

 

 

 

 

строку, содержащая ячейку с фокусом

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

goAlways-

 

 

 

Разрешить/запретить

доступность

 

 

 

 

ShowEditor

 

редактирования

 

ячейки

без

 

 

 

 

 

 

 

 

дополнительных

 

действий

при

 

 

 

 

 

 

 

 

перемещении в ячейку фокуса

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

goThumb-

 

 

 

Определяет

поведение

таблицы

при

 

 

 

 

Tracking

 

 

 

протягивании

 

пользователем

 

 

 

 

 

 

 

 

ползунка скроллинга мышкой:

 

 

 

 

 

 

 

 

 

 

 

 

True

скроллинг

 

происходит

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

одновременно с движением

 

 

 

 

 

 

 

 

 

 

ползунка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

False

скроллинг

 

происходит

 

 

 

 

 

 

 

 

 

 

только

после

того

как

 

 

 

 

 

 

 

 

 

 

пользователь

 

отпустит

 

 

 

 

 

 

 

 

 

 

ползунок

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RowCount

 

Число строк в таблице

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ScrollBars

 

Управляет

наличием/отсутствием

полосы

прокрутки

 

 

 

 

в таблице, если если количество строк или

 

 

 

 

столбцов не помещается в окне компонента.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 12 (окончание)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ScrollBars

 

Возможные значения:

 

 

 

 

 

 

 

 

 

 

 

(продолжение

 

ssBoth

 

 

при

необходимости

появляются

как

 

 

 

 

 

 

 

 

 

 

 

 

 

)

 

 

 

 

вертикальная,

 

так

 

и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

горизонтальная полосы прокрутки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ssHorizontal

 

при

 

необходимости

появляются

 

 

 

 

 

 

 

только

горизонтальная

полоса

 

 

 

 

 

 

 

прокрутки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ssVertical

 

при

 

необходимости

появляются

 

 

 

 

 

 

 

только

вертикальная

полоса

 

 

 

 

 

 

 

прокрутки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ssNone

 

 

ни

 

горизонтальная,

 

ни

 

 

 

 

 

 

 

вертикальная

полосы

 

прокрутки

 

 

 

 

 

 

 

появиться не могу в любом случае

 

 

 

 

 

 

 

 

 

 

 

 

 

Row

 

Свойства доступны

только

в

режиме

выполнения.

 

 

 

 

Определяют

номер

строки

выделенной

в таблице

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

66

 

 

ячейки.

 

 

 

Внимание! Нумерация строк и столбцов начинается

 

 

 

с нуля!!!!

 

 

 

 

 

 

Col

Свойства доступны только в режиме выполнения.

 

 

 

Определяют номер столбца выделенной в таблице

 

 

 

ячейки.

 

 

 

Внимание! Нумерация строк и столбцов начинается

 

 

 

с нуля!!!!

 

 

 

 

 

 

Cells

Свойство доступно только в режиме выполнения.

 

 

 

Позволяет получить доступ к каждой отдельной

 

 

 

ячейке таблицы по заданным номерам столбца и

 

 

 

строки. Принцип доступа:

 

 

 

<ИмяКомпонента> -> Cells[<НомерСтолбца>][<НомерСтроки>]

 

 

 

Внимание! Нумерация строк и столбцов начинается

 

 

 

с нуля!!!!

 

 

 

Тип данных – хранящихся в Cells – AnsiString.

 

 

 

 

 

Упражнение 3. Ввод значений элементов массива с помощью компонента

StringGrid.

1.Создать новый проект. Сохранить его в папке «InpTableCol». Имя проекта

– InpTable, имя файла модуля – frmTable.

2.Добавить на форму:

компонент Label;

компонент SpinEdit;

компонент StringGrid;

два компонента Button.

Компонент StringGrid должен быть невидим при запуске, число строк – 2, число фиксированных строк и столбцов – 1. Таблица должна иметь максимально возможный размер по горизонтали и возможность редактирования данных в ячейке. Имя таблицы – StrGr.

Подпись для компонента Label установить в «Число столбцов таблицы». У компонента SpinEdit свойства MinValue и MaxValue установить в 1 и 100, соответственно. Имя – speCount.

Первый компонент Button: подпись – «Вывести таблицу», имя – btnOutTable. Второй компонент Button: подпись – «Что ввели?», имя – btnRes.

3. Перейти в обработчик события Click для компонента btnOutТable. Набрать в нем следующий код:

67

unsigned char ColCount; ColCount = speCount->Value+1; StrGr->ColCount= ColCount; StrGr ->Cells[0][0]="Столбец"; StrGr ->Cells[0][1]="Данные"; for (int i=1;i<ColCount;i++)

{

StrGr ->Cells[i][0]=IntToStr(i);

}

StrGr ->Visible = True;

4.Не запуская программу, постараться понять действия, выполняемые в вышеприведенном коде.

5.Проверить свои размышления: запустить программу, задавая различные значения для числа столбцов таблицы в компоненте SpinEdit.

6.Проверить возможность ручного ввода в ячейки таблицы.

7.Добавить на форму два компонента Label, расположить их рядом друг с другом. В первом компоненте установить подпись «Результат ввода», во втором компоненте подпись очистить. Имя второго компонента – lblRes.

8.Перейти в обработчик события Click для компонента btnRes и набрать в нем следующий код:

lblRes->Caption="";

for (int i = 1;i<speCount->Value+1;i++)

{

lblRes->Caption=lblRes->Caption+StrGr->Cells[i][1]+", ";

}

9.Не запуская программу, постараться понять действия, выполняемые в вышеприведенном коде.

10.Проверить свои размышления: запустить программу, задать желаемое число столбцов для таблицы (не более 10), заполнить ячейки таблицы целыми числами с различными знаками; нажать на кнопку «Что ввели?»

11.Сохранить проект и форму в новой папке с именем «InpTableRow». Имена файлов не менять. C помощью файлового менеджера убедиться, что в папке InpTableRow появилось 6 файлов.

12.Самостоятельно изменить тексты функций для обеих кнопок так, чтобы

заполнение таблицы велось не как вектор-строки, а как вектор-столбца.

68

13.Добавить на форму компонент Label, расположить под компонентом lblRes; подпись очистить, имя установить в lblRes_1.

14.Добавить на форму третью кнопку, подпись – «Записать таблицу в массив». Цель кнопки – переписать данные, введенные пользователем в таблицу, в одномерный массив целых чисел с именем MyMas, изменить в массиве MyMas все отрицательные введенные числа на 0 и вывести результат в компонент lblRes_1. Код обработчика события Click для кнопки будет выглядеть следующим образом:

int MyMas[100]; lblRes_1->Caption="";

for (int i = 1;i<speCount->Value+1;i++)

{

MyMas[i-1]=StrToInt(StrGr->Cells[i][1]); if (MyMas[i-1]<0) {MyMas[i-1]=0;}

}

for (int i = 0;i<speCount->Value;i++)

{

lblRes_1->Caption=lblRes_1->Caption+IntToStr(MyMas[i])+", ";

}

15. Разобраться в набранном коде, запустить проект, убедиться в его работоспособности.

Упражнение 2. Заполнение массива с помощью датчика случайных

чисел и вывод результата в компонент StringGrid.

1.Открыть проект InpTable из папки InpTableCol.

2.Удалить с формы кнопку «Что ввели?».

3.Добавить на форму компонент GroupBox. Заголовок (подпись) – «Принцип заполнения таблицы».

4.В компонент GroupBox добавить два компонента RadioButton и один компонент Panel. Подпись для первого RadioButton – «ручной ввод», для второго – «генератор случайных чисел». В компоненте Panel очистить подпись. Имена: rbtnManual и rbtnRand соответственно. Радиокнопка rbtnManual при запуске приложения должна быть выбрана.

5.В компонент Panel добавить три RadioButton, подписи: «целые от 0 до N», целые от –N до N», «действительные от 0 до N». Имена – rbtn1, rbtn2, rbtn3. При запуске приложения должна быть выбрана радиокнопка rbtn1.

69

Соседние файлы в предмете Информатика