background image

 

Samouczek 

Builder C++ 

Sterowanie zegarowe 

 

Krok po kroku

 

Dr inż.Stanisław Lipski 

background image

Borland Builder 6.0 

• Jak utworzyć aplikację zegara?  
• Jak wykorzystać Timer do sterowania 

aplikacją? 

• Krok po kroku! 

background image

Wstęp 

• Timer pozwala wykonywać określony kod co określony 

przedział czasu 

• W przeciwieństwie do zegara w systemie, timer jest pod 

kontrolą i do dyspozycji programisty 

• Timer jest komponentem niewidocznym w aplikacji. 

 

background image

Własności 

• Właściwość Interval oznacza okres czasu (w milisekundach), który 

upływa między kolejnymi zdarzeniami OnTimer (wartością domyślną 

jest 1000 = jedna sekunda) 

• Wwłaściwość Enabled (bool) określa, czy timer jest włączony (true - 

wartość domyślna), czy 

• Wyłączony (false); kiedy timer jest wyłączony, nie generuje 

zdarzenia OnTimer 
 
 
 

background image

Krok 1 – projekt aplikacji 

Formularz projektu naszej aplikacji składać się będzie z dwóch 

przycisków Button1 oraz Button2 reprezentujących klasę TButton. 

Wykorzystamy też komponent etykietę Label zakładki Standard 

oraz Timer z zakładki System. 

 

background image

Krok 2 

• Umieść na formularzu dwa przyciski z napisami 

“Start” i “Stop”.   

• Umieść etykietę  Label i ustaw jej czcionkę na 

Arial, rozmiar 100. Ustal jej kolor. 

• W tytule  (caption) okna  napisz Zegar.  
• W celu zbudowania działającego zegara 

wykorzystaj komponent TTimer z zakładki System.  

• Ustaw dla niego Interval na 1000 (1 sekunda) i 

Enabled na false, jeśli chcesz aby po naciśnięciu 

przycisku “Start” zegar zaczął pokazywać co 

sekunda właściwy czas. Jeśli sam ma się włączać – 

ustaw true. 

• W tym celu w obsłudze OnClick dla przycisku 

“Start” wywołaj pokazanie aktualnego czasu i 

włączenie timera, który zadba o właściwe 

odświeżanie aplikacji. 

 

background image

Krok 3- kody przycisków 

• Start 

Timer1->Enabled=true; 
Label1->Caption=TimeToStr(Time()); 
 

Timer 

Label1->Caption=TimeToStr(Time()); 
 

Stop 

Timer1->Enabled=false; 

 

 

 

Zapisz, skompiluj i uruchom. 

background image

Krok 4- wynik 

 

background image

Zadanie 1 

• Zaprojektować aplikację sterującą światłami na 

skrzyżowaniu 

 

background image

Rozwiązanie 

10 

Panel 

Kształty (Tshape) 

background image

Uzupełnienie 

• Jeśli chcemy, aby zaznaczenie 

wskaźnikiem myszy dowolnego kółka 

zamknęło aplikację to: 

• zaznaczamy kontrolkę shpRed 
• trzymając wciśnięty klawisz Shift, 

zaznaczamy pozostałe kółka: 

shpGreen i shpYellow. 

• W funkcji obsługi zdarzenia 

OnMouseDown wpisujemy: Close(); 
 

11 

background image

Budowanie kodu 

void __fastcall TForm1::shpRedMouseDown(TObject *Sender, 
TMouseButton Button, TShiftState Shift, int X, int Y) 

Close(); 

pozostałe kółka będą miały identyczną funkcję 

umieszczamy na formularzu timer 

implementujemy jego funkcję obsługi zdarzenia OnTimer 

void __fastcall TForm1::Timer1Timer(TObject *Sender) 

if( shpRed->Brush->Color == clRed ) 
{Timer1->Interval = 3500; 
shpRed->Brush->Color = clSilver; 
shpYellow->Brush->Color = clSilver; 
shpGreen->Brush->Color = clGreen;} 
else if( shpGreen->Brush->Color == clGreen ) 
{Timer1->Interval = 2000; 
shpRed->Brush->Color = clSilver; 
shpYellow->Brush->Color = clYellow; 
shpGreen->Brush->Color = clSilver;} 
 

 

12 

background image

Budowanie kodu cd. 

• else if(shpYellow->Brush->Color == clYellow ) 
• {Timer1->Interval = 5000; 
• shpRed->Brush->Color = clRed; 
• shpYellow->Brush->Color = clSilver; 
• shpGreen->Brush->Color = clSilver;} 

 

• Zobacz inne przykłady: 
http://www.yevol.com/en/bcb/ 

 

13 

background image

14 

Dziękuję za zainteresowanie 

• stlipski@gmail.com