Witam w drugim arcie.
Jeśli zastanawiasz się, czy dasz radę tym komponentom, to odpowiedź jest prosta.. TAK. Używanie ich jest intuicyjne i proste.
Będzie ci potrzebne kilka umiejętności:
- znajomość interfejsu Delphi
- umiejętność posługiwania się komponentami
- wiedza na temat tworzenia i używania klas
Po tym tutorialu powinieneś umieć:
- samemu stworzyć szablon składający się z podstawowych komponentów Omega
- zainicjować je odpowiednio
- wyświetlić jakikolwiek tekst
Do dzieła…
Na początku zrobimy małły szablon, który jak wspominałem w poprzednim arcie będzie bardzo wyjściową formą do trudniejszych rzeczy.
Do pierwszej części będziemy potrzebować 3 komponenty o parametrach:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
TOmegaScreen Name : Omsc //nazwa komponentu FullScreen : true //czy pełny ekran Width : 800 // szerokośćo Height : 600 // wysokośćo TOmegaFont Name : Omfo OmegaScreen : Omsc (Bardzo ważne) // na jaki komponent wyświetlać TOmegaTimer Name : Omti |
Nazwy komponentów możesz zmienić. Ja używam takich ponieważ są krótkie
Zadbajmy oto, aby program wyłączał się po naciśnięciu klawisza „Esc”.
Aby to zrobić w zdarzeniu FormKeyPress dla formy należy wstawić linijkę:
1 |
if ord(key) = 27 then Form1.Close; // ord(key) = 27 to kod klawisza”Esc” |
Teraz zadbamy o prawidłowe uruchomienie timera Omti:
-
- uruchomienie Omti. W zdarzeniu OnShow piszemy:
1Omti.Enabled := true; // załączenie timera
- uruchomienie Omti. W zdarzeniu OnShow piszemy:
-
- zatrzymanie Omti. W zdarzeniu OnClose:
1Omti.Enabled := false; // wyłaczenie timera
- zatrzymanie Omti. W zdarzeniu OnClose:
Kolejnym krokiem jest inicjacja kolejnych komponentów w zdarzeniu FormCreate (nie wszystkie komponenty wymagają inicjacji przed ich użyciem). W tej chwili tylko 2 (z 3) komponenty potrzebują być zainicjowane, a mianowicie: Omsc i Omfo. Aby je zainicjować wpisujemy takie linijki :
1 2 3 |
Omsc.Init; // inicjacja OmegaScreen Omfo.Init; // inicjacja OmegaFont |
Teraz napiszę coś o używaniu OmegaFont. Dzięki temu komponentowi możemy w prosty sposób wyświetlić dowolny tekst, o dowolnym rozmiarze, kolorze i czcionce. Jak to zrobić?? To proste. Poleceniem CreateFont tworzymy interesującą nas czcionke (musi ona być zainstalowana na naszym komputerze) np.:
1 |
Omfo.CreateFont('verdana', 10, [fsBold]); |
Utworzyłem czcionkę o wielkości 10 pkt, pogrubioną, nazwa czcionki wzorcowej to Verdana.
Przed wyświetleniem musimy ustalić kolor czcionki, służy do tego taka funkcja:
1 |
omfo.Color := OmegaColor (255, 255, 255); |
W nawiasie podajemy kod koloru, możemy dodać czwartą opcję, która będzie oznaczała przezroczystość (Alpha)
Teraz zostało wyświetlić jakiś tekst do tego użyjemy funkcji Print. W szablonie będziemy wyświetlać ilość klatek na sekundę.
1 2 3 |
Omfo.Print(10, 10, 'FPS: ' + inttostr( omti.FPS ) ); //pierwsze 2 liczby to współrzędne, następnie piszemy treść, którą chcemy wyświetlić |
Omti.FPS to funkcja, która zwraca aktualną ilość klatek na sekundę
Do szczęścia (czytaj do wyświetlenia 🙂 ) musimy „powiadomić” komponent OmegaFont o tym, że chcemy chcemy niego skorzystać. Przed wyświetleniem tekstu piszemy:
1 |
Omfo.BeginFont; |
A po wyświetleniu:
1 |
Omfo.EndFont; |
Teraz przejdźmy do komponentu OmegaScreen. Tutaj mamy analogiczną sytuację jak wyżej. To znaczy przed rozpoczęciem prac na ekranie musimy „załączyć” Screen’a, wyczyścić ekran oraz wyłączyć obszar rysowania.
1 2 3 4 5 6 7 |
Omsc.BeginRender; // rozpoczęcie rysowania Omsc.ClearScreen(0, 0, 0); // czyszczenie obszaru roboczego kolorem czarnym – podajemy kod koloru podobnie jak dla OmgaFont Omsc.EndRender; // zakończenie rysowania |
Wszelkie czynności związane z wyświetlaniem umieszczamy w wydarzeniu OnTimer komponentu OmegaTimer. Całość będzie wyglądała tak:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
omsc.BeginRender; omsc.ClearScreen(0, 0, 0); omfo.BeginFont; omfo.Print(10, 10, 'FPS: ' + inttostr( omti.FPS ) ); omfo.EndFont; omsc.EndRender; |
Teraz wystarczy nacisnąć F9 i cieszyć się z wyników naszej pracy.
Do arta dołączam źródła całego szablonu.
Używam Omega w wersji 0.92b, oraz Delphi 6 Enterprise 🙂
Mam nadzieje, że wszystko jest zrozumiałe, jak nie to pisać na maila.
Kod źródłowy w załączniku.
Autor: Goofyx