Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РАБ_C++BUILDER.doc
Скачиваний:
100
Добавлен:
02.06.2015
Размер:
7.07 Mб
Скачать

Контрольные вопросы

  1. Какие компоненты представляют меню? Как форма связывается с меню?

  2. Как в процессе выполнения приложения изменять состав главного меню?

  3. Расскажите об основном свойстве главного меню. Как его заполнить?

  4. Как вводить в разделы меню изображения?

  5. Как объединять главные меню вспомогательных форм с меню главной формы?

  6. Как назначается способ объединения главных меню?

  7. Какие компоненты и как связываются с контекстным всплывающим меню?

  8. Как формировать контекстное всплывающее меню?

  9. Как назначаются «горячие» клавиши? Приведите пример.

Библиографический список

  1. Архангельский АЯ Программирование в C++Builder 6. – М: ЗАО «Издательство БИНОМ», 2003 – 1152 с – С 209–217.

  2. Шамис В.А. Borland C++ Builder 6. Для профессионалов / В.А. Шамис.− СПб.: Питер, 2003.− 798 с. – С. 290−293, 338–339.

  3. Архангельский АЯ Компоненты C++Builder. Справочное и методическое пособие. – М: ООО «Бином-Пресс», 2013 – 960 с: ил.

ЗАНЯТИЕ 7

Отображение хода длительных процессов.

Кнопки, индикаторы, управляющие элементы.

Панели и компоненты внешнего оформления

Компоненты ProgressBar и Cgauge

Компоненты ProgressBar со страницы Win32 и Cgauge со страницы Примеры предназначены для отображения хода процессов, занимающих заметное время, например, копирования больших файлов, настройку приложения, установку приложения на компьютере и т.п. Основные свойства этих компонентов различаются лишь именами:

Свойство

Progressbar

Свойство

CGauge

Описание

Max

MaxValue

Максимальное значение позиции (Position, Progress), которое соответствует завершению отображаемого процесса. По умолчанию задается в процентах − 100

Min

MinValue

Начальное значение позиции (Position, Progress), которое соответствует началу отображаемого процесса

Position

Progress

Позиция, которую можно задавать по мере протекания процесса, начиная со значения Min или Min-Value в начале процесса, и кончая значением Max или MaxValue в конце. Если минимальное и максимальное значения выражены в процентах, то позиция − это процент завершенной части процесса

Smooth

Непрерывное (при значении true) или дискретное отображение процесса

Step

Шаг приращения позиции, используемый в методе Steplt. Значение по умолчанию − 10

Orientation

Ориентация шкалы компонента: pbHorizontal − горизонтальная, pbVertical − вертикальная. Если задана pbVertical, то компонент надо вытянуть по вертикали

ForeColor

Цвет заполнения

ShowText

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

Kind

Тип диаграммы: gkHorizontalBar − горизонтальная полоса, gkVerticalBar − вертикальная полоса, gkPie − круговая диаграмма, gkNeedle − секторная диаграмма, gkText − отображение текстом

Отображение хода процесса можно осуществлять, задавая значение позиции − Position в ProgressBar или Progress в CGauge. Например, если полная длительность процесса характеризуется значением целой переменной Count, а выполненная часть − целой переменной Current, то задавать позицию диаграммы в случае, если используются значения минимальной и максимальной позиции по умолчанию (т.е. 0 и 100), можно операторами

ProgressBar1->Position=100*Current/Count;

или

CGauge1->Progress=100*Current/Count;

соответственно для ProgressBar и CGauge.

Можно поступать иначе: задать сначала значение максимальной величины равным Count, а затем в ходе процесса задавать позицию равной Current. Например:

CGauge1->MaxValue=Count;

…………………………………..

CGauge1->Progress=Current;

Компонент ProgressBar имеет два метода, которыми тоже можно воспользоваться для отображения процесса: StepBy(Delta: Integer) − увеличение позиции на заданную величину Delta, и StepItувеличение позиции на один шаг, величина которого задается свойством Step.

Задание 1. Ознакомиться с примерами применения компонентов ProgressBar и CGauge.

  1. Создайте для проекта приложения каталог (папку Windows), запустите C++Builder 6, создайте новый проект и командой Сохранить все сохраните файл модуля и файл проекта под разными именами.

  2. В свойство Caption формы впишите ProgressBar и CGauge. В левой части формы поместите панель Panel1, в свойство Caption которой впишите ProgressBar жирным шрифтом, красного цвета, размером 18.

  3. На панель поместите два компонента ProgressBar. В одном компоненте свойство Smooth задайте равным true, в другом − равным false. Свойство Orientation в одном компоненте задайте равным pbHorizontal, во втором − равным pbVertical. Второй компонент следует вытянуть по вертикали.

  4. В правой части формы сверху разместите метку Label1, в свойство Caption которой впишите CGauge жирным шрифтом, красного цвета, размером 18. На одной вертикали с меткой поместите четыре компонента CGauge, а пятый − слева от четвертого. Свойство Kind задайте соответственно равным gkText, gkHorizontalBar, gkNeedle, gkPie, gkVerticalBar. Свойство ForeColor задайте во всех компонентах по-разному, свойство ShowTextравным true, шрифт Fontжирным, размером 18.

  5. Под панелью разместите кнопку Button1, свойство Caption которой замените на слово ЗАПУСК жирным шрифтом, размером 18. В обработчик щелчка на кнопке впишите (курсив)

void __fastcall TForm1::Button1Click(TObject *Sender)

{

int count=1000;

ProgressBar2->Max=count;

ProgressBar2->Step=1;

for(int i=1;i<=count;i++)

{

ProgressBar1->Position=100*i/count;

ProgressBar2->StepIt();

CGauge1->Progress=100*i/count;

CGauge2->Progress=100*i/count;

CGauge3->Progress=100*i/count;

CGauge4->Progress=100*i/count;

CGauge5->Progress=100*i/count;

for(int j=0;j<100000;j++);

}

}

  1. Сохраните проект и выполните приложение. Нажимая на кнопку ЗАПУСК, убедитесь в работоспособности приложения.