- •В.В. Чуркин
- •Содержание
- •Ознакомление с Интегрированной Средой Разработки (иср)
- •Основное окно иср
- •Библиографический список
- •Занятие 1 Формы и компоненты Включение в проект новой формы
- •Размещение компонентов на форме
- •Депозитарий – хранилище форм и проектов
- •Задание 7. Опробовать режимы заимствования форм из Депозитария
- •Контрольные вопросы
- •Библиографический список
- •Занятие 2 Отладка приложений Компиляция и компоновка проекта
- •Сообщения компилятора и компоновщика
- •Действия в случае ошибки выполнения
- •Дальнейшие действия
- •Окно наблюдения Список Часов
- •Окно оценки и модификации Оценить|Изменить
- •Пошаговое выполнение приложения
- •Точки прерывания
- •Использование окна Инспектора Отладки
- •Другие средства отладки
- •Контрольные вопросы
- •Библиографический список
- •Занятие 3 Компоненты ввода и отображения текстовой информации
- •Компоненты Label, StaticText, Panel
- •Компоненты Edit, LabeledEdit, MaskEdit
- •Компоненты Memo, RichEdit
- •Компоненты ListBox, CheckListBox, ValueListEditor
- •Компонент StringGrid
- •Контрольные вопросы
- •Библиографический список
- •Занятие 4 Диаграммы и графики Компонент Chart
- •Компонент Image
- •Контрольные вопросы
- •Библиографический список
- •Контрольные вопросы
- •Библиографический список
- •Формирование квадратных матриц
- •Контрольные вопросы
- •Библиографический список
- •Кнопки, индикаторы, управляющие элементы
- •Управляющие кнопки Button и BitBtn
- •Кнопка с фиксацией SpeedButton
- •Группы радиокнопок − компоненты RadioGroup, RadioButton и GroupBox
- •Индикаторы CheckBox и CheckListBox
- •Ползунки и полосы прокрутки − компоненты TrackBar и ScrollBar
- •Заголовки − компоненты HeaderControl и Header
- •Таймер − компонент Timer
- •Календарь − компонент DateTimePicker
- •Панели и компоненты внешнего оформления
- •Панели общего назначения − компоненты Panel,
- •Многостраничные панели − компоненты TabControl,
- •Инструментальные панели − компоненты ToolBar и PageScroller
- •Перестраиваемые панели − компоненты CoolBar и ControlBar
- •Контрольные вопросы
- •Библиографический список
- •Занятие 8 Системные диалоги
- •Диалоги открытия и сохранения файлов – компоненты
- •Фрагменты диалогов – компоненты
- •Диалог выбора шрифта – компонент FontDialog
- •Диалоги выбора цвета – компоненты ColorDialog, ColorBox
- •Контрольные вопросы
- •Библиографический список
- •Занятие 9 Технология разработки приложений. Диспетчеризация действий
- •Диспетчеризация действий на основе компонента ActionList
- •Диспетчеризация действий на основе компонентов ActionManager, ActionMainMenuBar, ActionToolBar, CustomizeDlg
- •Контрольные вопросы
- •Библиографический список
- •Занятие 10 Динамически присоединяемые библиотеки dll Назначение dll
- •Статическое и динамическое связывание dll с приложением
- •Создание dll
- •Примеры статического и динамического связывания dll
- •Контрольные вопросы
- •Библиографический список
Контрольные вопросы
Какие компоненты представляют меню? Как форма связывается с меню?
Как в процессе выполнения приложения изменять состав главного меню?
Расскажите об основном свойстве главного меню. Как его заполнить?
Как вводить в разделы меню изображения?
Как объединять главные меню вспомогательных форм с меню главной формы?
Как назначается способ объединения главных меню?
Какие компоненты и как связываются с контекстным всплывающим меню?
Как формировать контекстное всплывающее меню?
Как назначаются «горячие» клавиши? Приведите пример.
Библиографический список
Архангельский АЯ Программирование в C++Builder 6. – М: ЗАО «Издательство БИНОМ», 2003 – 1152 с – С 209–217.
Шамис В.А. Borland C++ Builder 6. Для профессионалов / В.А. Шамис.− СПб.: Питер, 2003.− 798 с. – С. 290−293, 338–339.
Архангельский АЯ Компоненты 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.
Создайте для проекта приложения каталог (папку Windows), запустите C++Builder 6, создайте новый проект и командой Сохранить все сохраните файл модуля и файл проекта под разными именами.
В свойство Caption формы впишите ProgressBar и CGauge. В левой части формы поместите панель Panel1, в свойство Caption которой впишите ProgressBar жирным шрифтом, красного цвета, размером 18.
На панель поместите два компонента ProgressBar. В одном компоненте свойство Smooth задайте равным true, в другом − равным false. Свойство Orientation в одном компоненте задайте равным pbHorizontal, во втором − равным pbVertical. Второй компонент следует вытянуть по вертикали.
В правой части формы сверху разместите метку Label1, в свойство Caption которой впишите CGauge жирным шрифтом, красного цвета, размером 18. На одной вертикали с меткой поместите четыре компонента CGauge, а пятый − слева от четвертого. Свойство Kind задайте соответственно равным gkText, gkHorizontalBar, gkNeedle, gkPie, gkVerticalBar. Свойство ForeColor задайте во всех компонентах по-разному, свойство ShowText − равным true, шрифт Font − жирным, размером 18.
Под панелью разместите кнопку 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++);
}
}
Сохраните проект и выполните приложение. Нажимая на кнопку ЗАПУСК, убедитесь в работоспособности приложения.