Пример применения компонента
Мы хотим здесь продемонстрировать, что наш компонент очень прост в использовании. Форма имеет три кнопки — для запуска, остановки и выхода из программы. Также на ней размещаются три компонента 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 и т. д., может быть, придумать и реализовать какие-то специфические свойства и события. Скажем, можно было бы определить событие для двойного щелчка, который бы останавливал и снова запускал строку. Но все это мы оставляем на усмотрение читателя.