Лабораторная работа №26

Лабораторная работа №26
Разработка приложений с использованием компонентов Win32, System.
Цель: Сформировать умения разрабатывать программы с использованием компонентов страниц Win32 и System  
Оснащение: IBM PC, Borland C++ Builder 6

 

Вы не можете скачивать файлы с нашего сервера

Задание: 

Разработайте приложение «Движение транспортных средств»

Для этого необходимо расположить компонент TTabControl. В свойсте Tabs создать 3 вкладки и озаглавить их как на скриншоте. Затем необходимо расположить компоненты TTrackBar для скорости, TProgressBar для топлива, TImage для картинки, TBitBtn для кнопки «Заново», TTimer для времени, установите интервал времени 10мс, TStatusBar для информации о текущей скорости и количестве топлива.
Скорость транспортного средства будет содержаться в глобальной переменной ms. 
Количество топлива при старте транспортного средства будет максимальным. Поэтому при загрузке формы добавляем:

ProgressBar1->Position=ProgressBar1->Max; 

Во время движения картинка будет перемещаться слева направо, поэтому будет менятся свойство Image1->Left.
Создайте обработчик события смены вкладки TabControl1Change. Здесь, в зависимости от активной вкладки, мы будем менять максимальные параметры скорости, топлива и картинку. Активная вкладка содержится в свойстве TabIndex(от нуля до двух).
switch (TabControl1->TabIndex)
{
case 0:
Image1->Picture->LoadFromFile("авто.jpeg"); //загружаем картинку
Image1->Left=0; //начальная позиция  
TrackBar1->Max=500; //макс скорость
TrackBar1->Min=90; //мин скорость
ProgressBar1->Max=1000; //макс кол-во топлива
ProgressBar1->Min=0; //мин кол-во топлива
ProgressBar1->Position=ProgressBar1->Max; //топливо на максимум
TrackBar1->Position=TrackBar1->Min; //скорость на начало 
break;
...

500 соответствует 180 км/ч, 1000 соотв. 60 литрам.
Аналогичным образом установите скорость грузовика макс на 300(108 км/ч), топливо на 4000(240л), скорость самолёта макс на 2500(900 км/ч), топливо на 20000(1200л).

При изменении положения ползунка скорости меняется положение. Для этого необходимо в обработчике изменения ползунка TrackBar1Change установить изменение переменной ms, но если топлива нет, то скорость равна нулю. Установите 

ms=TrackBar1->Position; //скорость равна позиции ползунка

Учтите, что если позиция топлива на нуле, то скорость равна нулю.

Кнопка «Заново» устанавливает начальную позицию картинки в ноль, позицию топлива на максимум, позицию скорости на минимум.

 Осталось запрограммировать движение картинки. Левая позиция картинки будет менятся в зависимости от скорости:

Image1->Left+=ms/100; // увелививаем на ms/100;

Если позиция картинки достигла правого края формы, переместим её опять на начало:

if (Image1->Left>Form1->Width-170) Image1->Left=0;

Корректировка на 170 пикселей нужна для того, чтобы картинка не стирала границу. Корректировку ставьте по своему усмотрению(в зависимости от размера вашей формы и картинки).
 Позиция топлива будет всё время уменьшаться, в зависимости от скорости:
ProgressBar1->Position-=ms/200;
Установите ещё сброс скорости при топливе=0:

if (ProgressBar1->Position==0) ms=0;

Протестируйте работу приложения. Если всё хорошо, разделите TStatusBar на 4 части в свойстве Panels. Первая часть содержит числовое значение скорости, второе – текст «км/ч», третье – числовое значение объёма топлива, четвёртое – текст «л». Первое и третье поля будут меняться программно во время работы таймера. 
Значение скорости:
StatusBar2->Panels->Items[0]->Text=FloatToStr(TrackBar1->Position*0.36);
Значение топлива:
StatusBar2->Panels->Items[2]->Text=FloatToStr(ProgressBar1->Position*0.06);



Обсудить на форуме

Комментарии к статье:

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Регистрация

Реклама

Последние комментарии