INSTR 09 DOC


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.

  1. 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 0x01 graphic

Name

Height

Left

Picture

Stretch

Top

Width

imgObraz

77

24

(znaleźć bfly1.bmp)

False

176

77

Image 0x01 graphic

Name

Height

Left

Picture

Stretch

Top

Width

Visible

imgMotyl1

77

24

(znaleźć bfly1.bmp)

False

16

77

False

Image 0x01 graphic

Name

Height

Left

Picture

Stretch

Top

Width

Visible

imgMotyl2

77

128

(znaleźć bfly2.bmp)

False

16

77

False

Timer 0x01 graphic

Name

Interval

Left

Top

tmeZegar

220

8

14

Command Button 0x01 graphic

Name

Caption

Height

Left

Top

Width

cmdKoniec

&Koniec

33

400

224

73

0x01 graphic

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

  1. 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.

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

Sub cmdKoniec_Click()

End

End Sub

Uruchomienie programu Obrazki

  1. Uruchom program Motyl.

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

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

Tworzenie pliku wykonywalnego (Motyl.exe)

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

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

  1. 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).

  1. 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)

Informacja

W celu wykonania ćwiczenia pierwszego konieczne jest zmiana argumentów metody Move przesuwającej obiekt imgObraz.

Wykonanie ćwiczenia drugiego wymaga zdefiniowania dodatkowych obiektów Image zawierających obrazki reprezentujące kolejne kwadry księżyca, oraz zmodyfikowania procedury wyświetlającej animację zarówno w części odpowiedzialnej za sposób przemieszczania obiektów jak i kolejności ich wyświetlania.

5

5



Wyszukiwarka

Podobne podstrony:
PYTANIA5 09 doc
Ćwiczenie 3 09 doc
INSTR 07 DOC
INSTR 08 DOC
INSTR 05 DOC
INSTR 06 DOC
INSTR 01 DOC
09 (7) DOC
Ćwiczenie 4 09 doc
09 (3) DOC
INSTR 02 DOC
200 09 DOC
INSTR 10 DOC
INSTR 04 DOC
INSTR 03 DOC
II 09 (2) doc
09 (8) DOC

więcej podobnych podstron