- •Федеральное агентство по образованию государственное образовательное учреждение
- •Кафедра автоматики и телемеханики интегрированная среда разработки приложений
- •Лабораторная работа 1 Ознакомление с Интегрированной Средой Разработки (иср)
- •Основное окно иср
- •Библиографический список
- •Лабораторная работа 2 Формы и компоненты Включение в проект новой формы
- •Размещение компонентов на форме
- •Депозитарий – хранилище форм и проектов
- •Задание 7. Опробовать режимы заимствования форм из Депозитария
- •Библиографический список
- •Лабораторная работа 3 Отладка приложений Компиляция и компоновка проекта
- •Сообщения компилятора и компоновщика
- •Действия в случае ошибки выполнения
- •Дальнейшие действия
- •Окно наблюдения Список Часов
- •Окно оценки и модификации Оценить|Изменить
- •Пошаговое выполнение приложения
- •Точки прерывания
- •Использование окна Инспектора Отладки
- •Другие средства отладки
- •Библиографический список
- •Лабораторная работа 4 Компоненты ввода и отображения текстовой информации
- •Компоненты Label, StaticText, Panel
- •Компоненты Edit, LabeledEdit, MaskEdit
- •Компоненты Memo, RichEdit
- •Компоненты ListBox, CheckListBox, ValueListEditor
- •Компонент StringGrid
- •Библиографический список
- •Лабораторная работа 5 Диаграммы и графики Компонент Chart
- •Компонент Image
- •Формирование квадратных матриц
- •Кнопки, индикаторы, управляющие элементы
- •Управляющие кнопки Button и BitBtn
- •Кнопка с фиксацией SpeedButton
- •Группы радиокнопок − компоненты RadioGroup, RadioButton и GroupBox
- •Индикаторы CheckBox и CheckListBox
- •Ползунки и полосы прокрутки − компоненты TrackBar и ScrollBar
- •Заголовки − компоненты HeaderControl и Header
- •Таймер − компонент Timer
- •Панели и компоненты внешнего оформления
- •Панели общего назначения − компоненты Panel,
- •Многостраничные панели − компоненты TabControl,
- •Инструментальные панели − компоненты ToolBar и PageScroller
- •Перестраиваемые панели − компоненты CoolBar и ControlBar
- •Библиографический список
- •Лабораторная работа 9 Системные диалоги
- •Диалоги открытия и сохранения файлов – компоненты
- •Фрагменты диалогов – компоненты
- •Диалог выбора шрифта – компонент FontDialog
- •Диалоги выбора цвета – компоненты ColorDialog, ColorBox
- •Диспетчеризация действий на основе компонента ActionList
- •Диспетчеризация действий на основе компонентов ActionManager, ActionMainMenuBar, ActionToolBar, CustomizeDlg
- •Библиографический список
Формирование квадратных матриц
квадратная 5x5 Alt+A
произвольная
диагональная
треугольная
симметрическая
ортогональная
Отметим, что головные разделы Формирование квадратных матриц, Операции с матрицей вводятся точно так же, как и названия разделов. В разделе квадратная 5x5 Alt+A свойство Default следует установить в true, а в свойство ShortCut («горячие» клавиши) – вписать Alt+A.
В указанные ниже разделы введите следующие подразделы:
произвольная | неособенная диагональная | единичная
| особенная | трехдиагональная
| ленточная
треугольная | нижняя | квазидиагональная
| верхняя
симметрическая | общего вида
| положительно определенная
| кососимметрическая
Для этого, не выходя из Конструктора Меню, после выделения нужного раздела щелчком правой кнопкой вызовите контекстное меню и выберите пункт Создать подменю.
Операции с матрицей
вычисление определителя Ctrl+A обращение | вычисление m - нормы
вычисление ранга Ctrl+B | вычисление k – нормы
вычисление следа Ctrl+C | вычисление l - нормы
––––––––––––––––––––––––––––––
транспонирование Ctrl+D
«Горячие» клавиши в разделах под головным разделом Операции с матрицей выбираются в свойстве ShortCut из выпадающего списка. В свойство Caption раздела, следующего за разделом вычисление следа Ctrl+C, введите символ '–‘, чтобы вместо раздела появился разделитель. Для раздела обращение свойство Break установите в mbBreak, а для раздела вычисление m–нормы – в mbBarBreak.
Со страницы Стандарт перенесите на форму компонент Memo1. Установите шрифт (Font) Courier, полужирный. С этой же страницы перенесите на форму кнопку Button1, назовите ее ПЕРЕХОД НА 1-Ю ВСПОМОГАТЕЛЬНУЮ ФОРМУ, а в обработчик щелчка на кнопке впишите оператор: Form2->Show();
Этот оператор покажет пользователю окно 1-й вспомогательной формы Form2.
В файле Unit1.cpp после определения конструктора поместите следующие объявления и определения (курсив):
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
extern int r[50][50],a[50][50],n,m;
extern AnsiString s[50][50],s1[50];
//---------------------------------------------------------------------------
void form()
{ int i,j;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
r[i][j]=random(10);
Form1->Memo1->SetFocus();
Form1->Memo1->Clear();
for(i=0;i<n;i++){
s1[i]="";
for(j=0;j<m;j++){
s[i][j]=" "+IntToStr(r[i][j]);
s1[i]+=s[i][j];}
Form1->Memo1->Lines->Add(s1[i]);}
}
//---------------------------------------------------------------------------
void transp()
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
a[j][i]=r[i][j];
i=n;n=m;m=i;
Form1->Memo1->SetFocus();
Form1->Memo1->Clear();
for(i=0;i<n;i++){
s1[i]="";
for(j=0;j<m;j++){
s[i][j]=" "+IntToStr(a[i][j]);
s1[i]+=s[i][j];}
Form1->Memo1->Lines->Add(s1[i]);}
}
В обработчик щелчка на разделе квадратная 5x5 Alt+A впишите:
n=m=5;
form();
В обработчик щелчка на подразделе единичная впишите:
n=m=5;
int i,j;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(i==j)r[i][j]=1;
else r[i][j]=0;
Memo1->SetFocus();
Memo1->Clear();
for(i=0;i<n;i++){
s1[i]="";
for(j=0;j<m;j++){
s[i][j]=" "+IntToStr(r[i][j]);
s1[i]+=s[i][j];}
Memo1->Lines->Add(s1[i]);}
В обработчик щелчка на разделе транспонирование Ctrl+D впишите:
transp();
Командой Файл|Новый|Форма добавьте в проект первую вспомогательную форму Form2 и назовите ее 1-Я ВСПОМОГАТЕЛЬНАЯ ФОРМА. Сохраните файл модуля под именем по умолчанию Unit2. Со страницы Стандарт на форму перенесите компонент MainMenu1, двойным щелчком на нем перейдите в Конструктор Меню (окно Form2-> MainMenu1) и сконструируйте следующее меню:
Формирование прямоугольных матриц Операции с двумя матрицами
заполненная 4x5 сложение
заполненная общего вида вычитание
разреженная умножение
строка объединение по горизонтали
столбец объединение по вертикали
Поместите на 1-ю вспомогательную форму кнопку Button1, назовите ее ПЕРЕХОД НА ГЛАВНУЮ ФОРМУ, а в обработчик щелчка на ней впишите оператор:
Form1->Show();
Этот оператор покажет пользователю окно главной формы Form1. Чтобы компилятор понял операторы Form2->Show(); и Form1->Show();
надо в модуль главной формы Unit1.cpp вставить ссылку на заголовочный файл модуля 1-й вспомогательной формы Unit2.h #include “Unit2.h” и в модуль 1-й вспомогательной формы Unit2.cpp вставить ссылку на заголовочный файл модуля главной формы Unit1.h: #include “Unit1.h”.
Примечания. Для перехода из одного модуля в другой пользуйтесь быстрой кнопкой Вид модуля (в самом верхнем ряду кнопок первая слева) или комбинацией клавиш Ctrl+F12. Для перехода с одной формы на другую пользуйтесь быстрой кнопкой Вид формы (в самом верхнем ряду кнопок вторая слева) или комбинацией клавиш Shift+F12. Для перехода с формы на модуль пользуйтесь быстрой кнопкой Переключатель Форма|Модуль (в самом верхнем ряду кнопок третья слева) или клавишей F12.
В файле Unit2.cpp после определения конструктора поместите следующие объявления (курсив):
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
int r[50][50],a[50][50],n,m;
AnsiString s[50][50],s1[50];
void form();
void transp();
В обработчик щелчка на разделе заполненная 4x5 впишите:
n=4; m=5;
form();
После ввода команды Сохранить все запустите приложение на выполнение. Убедитесь в том, что во время выполнения пользователю доступны обе формы.
В окне Form2->MainMenu1 Конструктора Меню установите для головного раздела Операции с двумя матрицами и для его разделов GroupIndex=3, RadioItem=true, AutoCheck=true. После ввода команды Сохранить все запустите приложение на выполнение. Убедитесь в том, что данные разделы стали работать как радиокнопки.
Для головного раздела Формирование прямоугольных матриц и для его разделов установите GroupIndex=2, для головного раздела Формирование квадратных матриц и для его разделов и подразделов установите GroupIndex=2, а для головного раздела Операции с матрицей и для его разделов установите GroupIndex=4.
После ввода команды Сохранить все запустите приложение на выполнение. Убедитесь в том, что объединения меню не происходит при переходе на 1-ю вспомогательную форму (тогда она активизируется).
Теперь для компонента MainMenu1 1-й вспомогательной формы установите свойство AutoMerge в true. После ввода команды Сохранить все запустите приложение на выполнение. Убедитесь в том, что при переходе на 1-ю вспомогательную форму появляется объединенное меню на главной форме с заменами разделов меню главной формы разделами меню 1-й вспомогательной формы, имеющих GroupIndex=2.
И, наконец, для головного раздела Формирование прямоугольных матриц и для его разделов установите GroupIndex=1. После ввода команды Сохранить все запустите приложение на выполнение. Убедитесь в том, что при переходе на 1-ю вспомогательную форму на главной форме появляется объединенное меню со всеми разделами объединяемых меню.
В заключение для компонента MainMenu1 1-й вспомогательной формы установите свойство AutoMerge в false, введите команду Сохранить все и запуском на выполнение убедитесь в работоспособности приложения.
Перейдем к рассмотрению контекстного всплывающего меню. Это меню привязано к конкретным компонентам. Оно всплывает, если во время, когда данный компонент в фокусе, пользователь щелкнет правой кнопкой мыши. Обычно в контекстное меню включают те команды главного меню, которые в первую очередь могут потребоваться при работе с данным компонентом.
Контекстному меню соответствует компонент PopupMenu. Поскольку в приложении могут быть несколько контекстных меню, то и компонентов PopupMenu может быть несколько. Оконные компоненты: формы, панели, окна редактирования, а также метки и др. имеют свойство PopupMenu, которое по умолчанию пусто, но куда можно поместить имя того компонента PopupMenu, с которым будет связан данный компонент.
Формирование контекстного всплывающего меню производится с помощью Конструктора Меню, вызываемого двойным щелчком на PopupMenu, что совпадает с действиями для главного меню. Однако конструирование контекстного меню можно упростить по сравнению с конструированием главного меню. Поскольку разделы контекстного меню обычно повторяют некоторые разделы уже сформированного главного меню, то можно обойтись копированием соответствующих разделов.
Задание. Сформировать контекстное меню из разделов квадратная 5x5 Alt+A и транспонирование Ctrl+D.
На главную форму сохраненного выше проекта со страницы Стандарт перенесите компонент PopupMenu1 и двойным щелчком на нем перейдите в Конструктор Меню (окно Form1-> PopupMenu1). Затем щелкните правой кнопкой мыши и во всплывшем меню выберите команду Выбор меню…В окне Выбор меню выберите MainMenu1 и нажмите ОК.
В появившемся главном меню выделите нужный раздел или разделы (при нажатой клавише Shift выделяют разделы в заданном диапазоне, при нажатой клавише Ctrl выделяют совокупность разделов, не являющихся соседними). Затем скопируйте выделенный раздел или разделы в буфер обмена, нажав клавиши Ctrl+C. После этого опять щелкните правой кнопкой мыши, выберите команду Выбор меню… и вернитесь в контекстное меню. Укажите курсором место, в которое нужно вставить скопированный раздел или разделы, и нажмите клавиши чтения из буфера обмена – Ctrl+V. Разделы меню вместе со всеми их свойствами (но не событиями!) будут скопированы в создаваемое контекстное меню. Если же разделы, требуемые для переноса из главного меню в контекстное, находятся под разными заголовками (как в задании), то описанные выше действия необходимо выполнять для каждого раздела.
В свойство PopupMenu компонентов Form1 и Memo1 внесите PopupMenu1.
В обработчик щелчка на разделе квадратная 5x5 Alt+A впишите: n=m=5;
form();
В обработчик щелчка на разделе транспонирование Ctrl+D впишите:
transp();
После ввода команды Сохранить все запустите приложение на выполнение. Убедитесь в том, что контекстное меню появляется при щелчке правой кнопкой мыши как на главной форме, так и на компоненте Memo1.
Компонент HotKey, расположенный на странице Win32, является вспомогательным, обеспечивающим возможность задания самим пользователем «горячих» клавиш, определяющих быстрый доступ к разделам меню. К тому же этот компонент позволяет задать такие сочетания «горячих» клавиш, которые не предусмотрены в выпадающем списке свойства разделов меню ShortCut.
Основное свойство компонента – HotKey, равное по умолчанию комбинации клавиш Alt+A. Это свойство можно прочесть и присвоить свойству ShortCut какого-то раздела меню. Например, оператор
MOpen->ShortCut = HotKey1->HotKey;
присваивает разделу меню с именем MOpen комбинацию клавиш, заданную в компоненте HotKey1.
В заключение рассмотрим пример использования компонента HotKey и настройки «горячих» клавиш для меню на 1-й вспомогательной форме в процессе выполнения приложения.
Командой Файл|Новый|Форма добавьте в проект вторую вспомогательную форму Form3 и назовите ее 2-Я ВСПОМОГАТЕЛЬНАЯ ФОРМА – ГОРЯЧИЕ КЛАВИШИ. Сохраните файл модуля под именем по умолчанию – Unit3.
На 1-й вспомогательной форме добавьте в меню раздел настройка в головной раздел Формирование прямоугольных матриц. В обработчик команды настройка вставьте оператор
Form3->ShowModal();
Этот оператор покажет пользователю окно 2-й вспомогательной формы как модальное – т.е. пользователь не сможет вернуться в другую форму, пока не закроет 2-ю вспомогательную. Чтобы компилятор понял этот оператор, надо в модуль 1-й вспомогательной формы Unit2.cpp вставить ссылку на заголовочный файл модуля 2-й вспомогательной формы Unit3.h
#include “Unit3.h”.
Поскольку из модуля Unit3.cpp надо будет видеть меню модуля Unit2.cpp, то аналогичным образом введите и обратную связь – свяжите модуль Unit3 с Unit2: #include “Unit2.h”.
На 2-ю вспомогательную форму перенесите со страницы Стандарт два списка ListBox, разместив их по горизонтали в верхней части формы, кнопку Button1, поместив ее внизу справа, а со страницы Win32 – компонент HotKey1, поместив его внизу слева. В компоненте HotKey1 сотрите с помощью Инспектора Объектов значение по умолчанию (Alt+A) свойства HotKey. Кнопку назовите OK. Затем со страницы Стандарт перенесите три метки Label. Первую – поместите над первым списком ListBox1 и назовите МЕНЮ, вторую – поместите над вторым списком ListBox2 и назовите РАЗДЕЛ, третью – поместите над HotKey1 и назовите ГОРЯЧИЕ КЛАВИШИ.
В списке ListBox1 будут отображаться головные разделы меню, в ListBox2 – разделы меню, соответствующие выбранному головному разделу. В окне HotKey1 в место предварительно помещенного туда курсора отобразится сочетание нажатых «горячих» клавиш, соответствующее выбранному разделу. При нажатии кнопки OK будет зафиксирован в меню сделанный пользователем выбор «горячих» клавиш и будет закрыта 2-я вспомогательная форма.
Теперь впишите обработчики событий:
void __fastcall TForm3::FormShow(TObject *Sender)
{
/*Загрузка ListBox1 головными разделами меню
при событии OnShow формы Form3 */
ListBox1->Clear();
for(int i=0; i<Form2->MainMenu1->Items->Count; i++)
ListBox1->Items->Add(Form2->MainMenu1->Items->Items[i]->Caption);
ListBox1->ItemIndex=0;
//Обращение к процедуре загрузки ListBox2
ListBox1Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TForm3::ListBox1Click(TObject *Sender)
{
/* Загрузка ListBox2 разделами меню
MainMenu1->Items->Items[ListBox1->ItemIndex],
выделенного в ListBox1 пользователем и
при событии OnShow формы Form3 головного раздела меню */
ListBox2->Clear();
for(int i=0; i<Form2->MainMenu1->Items->Items[
ListBox1->ItemIndex]->Count; i++)
ListBox2->Items->Add(Form2->MainMenu1->Items->Items[
ListBox1->ItemIndex]->Items[i]->Caption);
ListBox2->ItemIndex=0;
// Обращение к процедуре ListBox2Click
ListBox2Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TForm3::ListBox2Click(TObject *Sender)
{
/* Занесение «горячих» клавиш выделенного в ListBox2 раздела
в компонент HotKey1*/
HotKey1->HotKey= Form2->MainMenu1->Items->Items[
ListBox1->ItemIndex]->Items[
ListBox2->ItemIndex]->ShortCut;
}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button1Click(TObject *Sender)
{
/* Изменение «горячих» клавиш выбранного раздела меню
и закрытие 2-й вспомогательной формы */
Form2->MainMenu1->Items->Items[
ListBox1->ItemIndex]->Items[ListBox2->ItemIndex]->ShortCut
=HotKey1->HotKey;
Close();
}
//---------------------------------------------------------------------------
При событии OnShow формы Form2 происходит загрузка списка ListBox1 головными разделами меню. Цикл загрузки перебирает индексы от нуля до Form2->MainMenu1->Items->Count-1. Свойство Count равно числу головных разделов в меню.
При щелчке пользователя на списке ListBox1 происходит загрузка списка ListBox2. При этом к соответствующим разделам меню осуществляется доступ с помощью выражения Form2->MainMenu1->Items->Items[ ListBox1->ItemIndex]->Items[i]. В этом выражении Form2->MainMenu1->Items->Items[ListBox1->ItemIndex] – головной раздел меню, выбранный пользователем в ListBox1. Каждый такой раздел можно рассматривать как элемент массива меню и в то же время он сам является массивом разделов второго уровня. Поэтому его свойство Items[i] указывает на подраздел с индексом i. В конце данной процедуры вызывается процедура ListBox2Click, загружающая данные в HotKey1.
После ввода команды Сохранить все запустите приложение на выполнение. Убедитесь в правильной работе приложения. При щелчке на разделе настройка откроется 2-я вспомогательная форма. При щелчке пользователя на списке ListBox2 происходит загрузка компонента HotKey1 символами «горячих» клавиш выбранного пользователем раздела. Если раздел не имеет «горячих» клавиш, то в окне HotKey1 отображается текст “Нет”. Далее пользователь может войти в окно HotKey1 и нажать сочетание «горячих» клавиш, которое он хочет назначить выбранному им разделу меню. Обработка щелчка на кнопке OK фиксирует это сочетание в разделе меню и закрывает 2-ю вспомогательную форму.
Библиографический список
Архангельский АЯ Программирование в C++Builder 6. – М: ЗАО «Издательство БИНОМ», 2003 – 1152 с – С 209–217.
Шамис В.А. Borland C++ Builder 6. Для профессионалов / В.А. Шамис.− СПб.: Питер, 2003.− 798 с. – С. 290−293, 338–339.
ЛАБОРАТОРНАЯ РАБОТА 8
Отображение хода длительных процессов.
Кнопки, индикаторы, управляющие элементы.
Панели и компоненты внешнего оформления
Компоненты ProgressBar и CGauge
Компоненты ProgressBar со страницы Win32 и Cgauge со страницы Примеры предназначены для отображения хода процессов, занимающих заметное время, например, копирования больших файлов, настройку приложения, установку приложения на компьютере и т.п. Основные свойства этих компонентов различаются лишь именами:
Свойство Progressbar |
Свойство CGauge |
Описание |
Max |
MaxValue |
Максимальное значение позиции (Position, Prog-ress), которое соответствует завершению отобра-жаемого процесса. По умолчанию задается в про-центах − 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++);
}
}
Сохраните проект и выполните приложение. Нажимая на кнопку ЗАПУСК, убедитесь в работоспособности приложения.