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

         

Пример применения компонента


Мы хотим здесь продемонстрировать, что наш компонент очень прост в использовании. Форма имеет три кнопки — для запуска, остановки и выхода из программы. Также на ней размещаются три компонента TTickТаре. Для каждого из них можно задать свой размер и шрифт. Свойства TickRate были установлены в инспекторе объектов равными 10, 7 и 15. Код модуля приведен в листинге 15.4.

Рис. 15.4 Компонент конструкторе форм

Листинг 15.4. Файл ThreeU.cpp.

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

#include<vcl.h>

#pragma hdstop

#include<ThreeU.h"

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

#pragma packege(smart_init)

#pragma link "CTickTape"

#pragma resourse "*.dfm"



TForm1 *Form1;

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

_fastcall TFormI: :TForml (.TComponent* Owner) :Form(Owner)

{

}

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

void _fastcalll TFormI: :Button2Click(TObject *Sender)

{

if(run)return;

CTickTapel->Started = true

CTickTape2->Started = true CTickTape3->Started = true

run = true;

while (run) (

Application->ProcessMessages() ;

if (!run) break;

CTickTapel->Tick()

CTickTape2->Tick()

CTickTape3->Tick() }

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

void_fastcall TFormI::Button3Click(TObject *Sender) {

if (run) { run = false;

CTickTapel->Started = false;

CTickTape2->Started = false;

CTickTape3->Started = false;

}

}

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

void_fastcall TFo'rmI: :ButtonlClick (TObject *Sender) {

Button3Click(this) ;

Close () ;

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

В обработчике кнопки “Старт” находится цикл ожидания:

run = true;

while (run) {

Application->ProcessMessages() ;

if (!run) break;

CTickTapel->Tick() ;

CTickTape2->Tick() ;

CTickTape3->Tick() ;

}

При нажатии этой кнопки три строки начинают бежать по экрану, каждая со своей скоростью. Как видите, все, что требуется от программиста — это достаточно часто вызывать метод Tick() строки. Время компонент будет отмерять сам. На рис. 15.5 показано запущенное приложение.

Рис. 15.5 Программа с тремя бегущими строками

Заключение

На этом наше знакомство с C++Builder заканчивается. В этой главе мы рассмотрели один из довольно сложных аспектов визуального программирования — создание визуальных компонентов. Созданный нами компонентов конечно, нельзя считать завершенным. Его нужно было бы дополнить свойствами класса TComponent, такими, как Visible, Enabled и т. д., может быть, придумать и реализовать какие-то специфические свойства и события. Скажем, можно было бы определить событие для двойного щелчка, который бы останавливал и снова запускал строку. Но все это мы оставляем на усмотрение читателя.



Содержание раздела