Програма Банер демонструє використання бітового образу для виведення банера в стилі рухомого рядка. Банер “випливає” з-за правого краю форми. У момент часу, коли банер досягає центру вікна, рух призупиняється на кілька секунд, а потім – поновлюється.

Код написання програми
#include vcl.h
#pragma hdrstop
#include Graphics.hpp
#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->LoadFromFile("banner.bmp"); // Завантажити зображення з файлу
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; // Зупинити рух банера на 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;
}
програмування