INSTR_09.DOC

(70 KB) Pobierz
Instrukcja nr1

Akademia Techniczno-Rolnicza w Bydgoszczy

Wydział Mechaniczny

Katedra Sterowania i Konstrukcji

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Systemy mikrokomputerowe

 

WSTĘP DO PROGRAMOWANIA

W JĘZYKU VISUAL BASIC

 

 

Instrukcja nr 9


Opis działania programu Motyl

 

Program Motyl pokazuje wykorzystanie obiektów obraz - Image do zbudowania aplikacji wyświetlającej animacje rysunków w formatach BMP, WMF oraz ICO.

 

Implementacja wizualna programu Motyl

 

1.   Otwórz nowy projekt, zachowaj jego formę w pliku Motyl.frm, a projekt pod nazwą Motyl.mak.

 

2.   Na podstawie danych z tabeli zbuduj formę tak jak na rysunku 1.

 

Obiekt

Własność

Ustawienie

Form

Name

Caption

Height

Left

ScaleMode

Top

Width

frmMotyl

Motyl

4425

930

3-Pixel

1080

7485

Image

Name

Height

Left

Picture

Stretch

Top

Width

imgObraz

77

24

(znaleźć bfly1.bmp)

False

176

77

Image

Name

Height

Left

Picture

Stretch

Top

Width

Visible

imgMotyl1

77

24

(znaleźć bfly1.bmp)

False

16

77

False

Image

Name

Height

Left

Picture

Stretch

Top

Width

Visible

imgMotyl2

77

128

(znaleźć bfly2.bmp)

False

16

77

False

Timer

Name

Interval

Left

Top

tmeZegar

220

8

14

Command Button

Name

Caption

Height

Left

Top

Width

cmdKoniec

&Koniec

33

400

224

73

 

Rys.1 Program Motyl

 

Instrukcja

Własność ScaleMode obiektu Form określa w jakich jednostkach podawane są rozmiary i położenie obiektów umieszczonych w formie frmMotyl. Ustawienie 3-Pixel wskazuje, że wartości podawane w takich cechach ja Left, Top, Width, Height wyrażono w punktach (pikselach) obrazu.

Obiekt Timer pozwala na automatyczne uruchamianie wskazane procedury (w tym przykładzie tmeZegar_Timer()) co określony czas. Czas jaki mija pomiędzy kolejnymi uruchomieniami określa w milisekundach własność Interval. Obiekt typu Timer podczas działania programu nie jest wyświetlany, tak więc własności Left oraz Top określają położenie ikonki symbolizującej obiekt Timer w trakcie budowania formularza.

Własność Visible obiektów imgMotyl1 i imgMotyl2 ustawiona na False wskazuje, że nie są one widoczne podczas działania programu (wykorzystano je do przechowywania kolejnych klatek animacji).

 

Wprowadzanie kodu programu Motyl

 

1.   Do procedury tmeZegar_Timer() formy frmMotyl wpisz następujący kod:

Sub tmeZegar_Timer()

    Static WskazObraz As Integer

    imgObraz.Move imgObraz.Left + 20 imgObraz.Top - 5

    If WskazObraz = True Then

       imgObraz.Picture = imgMotyl1.Picture

    Else

       imgObraz.Picture = imgMotyl2.Picture

    End If

    WskazObraz = Not WskazObraz

End Sub

 

 

 

 

 

 

Instrukcja

Procedura ta wykonywana jest automatycznie przez obiekt tmeZegar co 220 milisekund (określa to własność Interval tego obiektu). Działanie procedury polega na przesuwaniu obiektu imgObraz wyświetlającego wizerunek motyla po każdym wywołaniu o 20 pikseli w prawo i 5 pikseli do góry. Jednocześnie następuje cykliczna zmiana wyświetlanego obrazu motyla - raz jest to obrazek motyla ze złożonymi skrzydłami, a następnie ze skrzydłami rozłożonymi.

W pierwszej kolejności definiowana jest zmienna WskazObraz określająca, który obraz motyla ma być wyświetlony. Jeśli jej wartość wynosi True wyświetlany jest motyl z otwartymi skrzydłami, w przeciwnym wypadku ze złożonymi. Deklaracja Static określa, że wartość zmiennej nie jest kasowana po zakończeniu się procedury.

Static WskazObraz As Integer

Po tej deklaracji obiekt imgObraz jest przesuwany przy pomocy metody Move z argumentami określającymi punkt docelowy przesunięcia (górny lewy wierzchołek ma zostać przesunięty ze swego aktualnego położenia w prawo o 20 punktów - imgObraz.Left + 20 i do góry o 5 punktów - imgObraz.Top - 5).

imgObraz.Move imgObraz.Left + 20 imgObraz.Top - 5

Następnie sprawdzany jest wspomniany wyżej warunek określany przez zmienną WskazObraz, a następnie własności Picture obiektu imgObraz przypisywana jest zawartość własności Picture ukrytych obiektów imgMotyl1 i imgMotyl2. Wykorzystanie trzech obiektów umożliwia przechowywanie dwóch różnych obrazów motyla jednocześnie w pamięci (imgMotyl1 i imgMotyl2) oraz przesuwanie tylko pojedynczego obiektu (imgObraz), któremu na zmianę przypisywane są obrazki pamiętane przez dwa pozostałe obiekty. Umożliwia to programowanie szybkich animacji przy pomocy stosunkowo prostych procedur.

If WskazObraz = True Then

   imgObraz.Picture = imgMotyl1.Picture

Else

   imgObraz.Picture = imgMotyl2.Picture

End If

Na koniec wykonywana jest zamiana wartości na przeciwną zmiennej WskazObraz przy pomocy operatora Not (z True na False lub z False na True). Dzięki deklaracji Static wartość zmiennej jest pamiętana nawet po zakończeniu działania procedury (deklaracja Dim pozwala deklarować zmienne, których wartości pamiętane są podczas wywołania procedury, po jej zakończeniu ulegają one usunięci z pamięci komputera)

    WskazObraz = Not WskazObraz

 

2.   Do procedury Form_Load() formy frmMotyl wpisz następujący kod:

Sub Form_Load()

    cmdKoniec.Move 10,10

End Sub

 

Instrukcja

Procedura ta przesuwa (licząc od lewego górnego wierzchołka) obiekt cmdKoniec (klawisz Koniec) do punktu o współrzędnych 10,10 przy czym początek układu współrzędnych znajduje się w górnym lewym wierzchołku wewnętrznej (o kolorze białym) części formy frmMotyl.

 

3.   Do procedury cmdKoniec_Click() formy frmMotyl wpisz następujący kod:

              Sub cmdKoniec_Click()

                            End

              End Sub

 

Uruchomienie programu Obrazki

 

1.   Uruchom program Motyl.

 

2.   Zwróć uwagę na sposób animacji motyla.

 

3.   Kliknij Koniec, aby zakończyć działanie programu.

 

Tworzenie pliku wykonywalnego (Motyl.exe)

 

1.   Wybierz z menu File opcję Make EXE File.

 

2.   Zapamiętaj plik pod nazwą Motyl.exe w katalogu .

 

3.   Zakończ działanie Visual Basic wybierając z menu File opcję Exit.

 

Ćwiczenie końcowe

 

1.   Zmień program Motyl, tak aby zmienić tor lotu motyla (w dowolny sposób).

 

2.   Zmodyfikuj program Motyl, tak aby wyświetlał on przesuwający się poziomo księżyc w kolejnych kwadrach. Obrazki przedstawiające kolejne kwadry księżyca znajdują się w plikach Moon01.ico, Moon02.ico, Moon03.ico, Moon04.ico, Moon05.ico, Moon06.ico, Moon07.ico oraz Moon08.ico (katalog: \vb\icons\elements)

 

...
Zgłoś jeśli naruszono regulamin