- •Задача 1. Конвертер
- •Задача 2. Фунты-килограммы
- •Задача 3. Сила тока.
- •Задача 4. Сопротивление
- •Задача 5. Кафе
- •Задача 6. Любимый напиток
- •Задача 7. Электроэнергия
- •Задание 8. Осаго
- •Задание 9.Просмотр иллюстраций
- •Задача 10. Калькулятор
- •Задача 11. Калькулятор-2
- •Задача 12.Секундомер
- •Задача 13. Угадай число
- •Задание 14.Угадай число-2
- •Задание 15.Запуск Internet Explorer
- •Задание 16.Конвертор
- •Задание 17.Конвертор 2
- •Задание 18.Погода
- •Задание 19.Средняя температура
- •Задание 20. Простая база данных
- •Задание 21. Редактор текста
- •Задание 22. Приветствие
- •Задача 23. Олимпийский флаг
- •Задание 24. Диаграмма
- •Задача 26. Круговая диаграмма.
- •Задача 27. Просмотр иллюстраций.
- •Задача 28 .Часы
- •Задача 29. Пинг понг.
- •Задача 30. Полет в облаках
- •Задача 31.Баннер
- •Задача 32. Фоновый рисунок
- •Задача 33. Wav
- •Задача 34. Mp3 Player
- •Задача 35.Воспроизведение midi
- •Задача 36.Compact Disk Player (версия 1)
- •Задача 37.Compact Disk Player (версия 2)
- •Задача 38.VideoPlayer
- •Задача 39. Анимация
- •Задача 40. Записная книжка
- •Задача 41 Магазин
- •Задача 42. Ежедневник
- •Задача 43. Сапер
- •Часть 1. Примеры и задачи
- •Часть 1. Примеры и задачи
- •Задача 44 Игра 15
- •Часть 1. Примеры и задачи
- •Задача 45. Игра "Собери картинку" (Puzzle)
- •Задача 46 Игра "Парные картинки"
- •Задача 47. Экзаменатор
- •Задача 48. Экзаменатор-2
- •Задача 49. Календарь
- •Задача 50. Будильник
- •Задача 51. Очистка диска
- •Задача 52.Печать
- •Задачи для самостоятельного решения Задача 1. Скидка
- •Задача 2.Доход по вкладу
- •Задача 3. Таблица умножения
- •Задача 4.Поездка на автомобиле
- •Задача 5.Стоимость разговора
- •Задача 6. Стеклопакет
- •Задача7. Калькулятор
- •Задача 8. Электроэнергия
- •Задача 9. Добрый день
- •Задача 10. Часы
- •Задача 11. Узоры
- •Задача 12. Курс доллара
- •Задача 13. Диаграмма
- •Задача 14. Домашние животные
- •Задача 15. Кораблик
- •Задача 16. Сапер
- •Задача 17 .Экзаменатор
- •Задача 18. База данных "Расходы"
Задача 31.Баннер
Программа Бегущая строка (Рис. 38) демонстрирует использование битового образа для вывода баннера в стиле бегущей строки. Битовый образ (бегущая строка) загружается из ресурса программы. Баннер "выплывает" из-за правой границы формы. В момент времени, когда баннер достигает центра окна, движение приостанавливается на несколько секунд, а затем — возобновляется.
Рис 38
Вывод: В этом задании мы создали бегущую строку.
Листинг
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Graphics::TBitmap *banner;
int x,y;
int pause;
int xp;
TColor bc;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
banner = new Graphics::TBitmap();
banner->LoadFromResourceID((int)HInstance,101);
bc = banner->Canvas->Pixels[0][0];
x = Form1->ClientWidth;
y = 0;
xp = (Form1->ClientWidth - banner->Width) / 2;
if (xp < 0 ) xp = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if ( pause > 0 )
{pause--;
return;
}
Form1->Canvas->Draw(x,y,banner);
if ( -- x == xp)
{
pause = 100;
}
if ( x < - banner->Width)
x = Form1->ClientWidth;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
TColor b,p;
b = Canvas->Brush->Color; // сохранитьтекущийцветкисти
p = Canvas->Pen->Color; // сохранить текущийцвет
Canvas->Brush->Color = bc;
Canvas->Pen->Color = bc;
Canvas->Rectangle(0,0,ClientWidth,banner->Height);
Canvas->Brush->Color = b ;
Canvas->Pen->Color = p ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormResize(TObject *Sender)
{
xp = (Form1->ClientWidth - banner->Width) / 2;
if (xp < 0 ) xp = 0;
}
Задача 32. Фоновый рисунок
Программа Фоновый рисунок (Рис. 39) демонстрирует, как можно получить фоновый рисунок путем многократного вывода битового образа на поверхность формы. Битовый образ загружается из файла, но может быть загружен и из ресурса.
Рис 39
Вывод: В этом задании мы научились создавать изображение путём многократного вывода битового образа на поверхность формы.
Листинг
// обработкасобытия OnCreate
void __fastcall TForml::FormCreate(TObject *Sender)
{
back = new Graphics::TBitmap(); // создать объект — битовый образ
// загрузить картинку
try // в процессе загрузки картинки возможны ошибки
{
Forml->back->LoadFromFile("Legal.bmp");
}
catch (EFOpenError &e)
{
return;
}
}
// формируетфоновыйрисунок
void __fastcall TForml::Background()
{
int x=0,y=0; // координатылевоговерхнегоуглабитовогообраза
if ( back->Empty) // битовый образ не был загружен
return;
do
{
do
{
Canvas->Draw(x,y,back); x += back->Width;
}
while (x < ClientWidth); x = 0;
у4= back->Height;
}
while (y < ClientHeight);
}
// обработкасобытия OnPaint
void __fastcall TForml::FormPaint(TObject *Sender)
{
Background(); // обновить фоновый рисунок
}
