C++ Программирование в среде С++ Builder 5


Код - часть 2


//

_fast-call TFormI: :TForml (TComponent* Owner)

: TForm(Owner) {

position = Width;

interval = 10;

started = false;

bm = new Graphics::TBitmap;

Setup 0;

}

//---------------------------------------

// Деструктор формы - удаляет битовую матрицу.

//

_fastcall TFormI::--TFormI() (

delete bm;

}

//---------------------------------------

//Инициализирует битовую матрицу образом текстовой строки.

void _fastcall TFormI:: Setup ()

bm->Canvas->Font->Name = "Comic.Sans MS";

bm->Canvas->Font->Size = 16;

bm->Height = bm->Canvas->TextHeight(text);

bm->Width = bm->Canvas->TextWidth(text) + 1;

bm->Canvas->Brush->Color = clBtnFace;

bm->Canvas->FillRect(Rect(0, 0, bm->Width, bm->Height)) ;

bm->Canvas->TextOut (0, 0, text) ;

}

//---------------------------------------

// цикл бегущей строки. Организует таймер с помощью

//Функциии API GetTickCount () .

//

void_fastcall TFormI::Loop() {

unsigned long nextTick = GetTickCount();

while (started) {

Application->ProcessMes sages ();

if (!started) return; if (GetTickCount () > nextTick)

{

//

// Копировать битовую матрицу с текстом

// на канву формы.

//

Canvas->Draw(--position, 12, bm);

if (position < -bm->Width) position = Width;

nextTick += interval;

} }

//---------------------------------------

// Кнопка "Выход".

//

void fastcall TFornil::Button3Click(TObject *Sender)

{ —

started = false;

Close () ;

}

//---------------------------------------

// Кнопка "Старт".

//

void_fastcall TFormI::ButtonlClick(TObject *Sender)

{

if (started) return;

started = true;

Loop() ;

} //-------------------------------------

// Кнопка "Стоп".

//

void _fastcall TFormI::Button2Click(TObject *Sender)

{

started = false;

}

//---------------------------------------

// Событие OnPaint.

// Обеспечивает обновление изображения

// при остановленной строке.

//

void _fastcall TFormI::FormPaint(TObject *Sender)




Начало  Назад  Вперед



Книжный магазин