• Nie Znaleziono Wyników

Zadanie Wykona

N/A
N/A
Protected

Academic year: 2021

Share "Zadanie Wykona"

Copied!
4
0
0

Pełen tekst

(1)

vb5_anim.doc

Copyright © 2017, Janusz Bonarowski 1

Zadanie

Wykonać aplikację wyświetlającą rysunki (mapy bitowe, zdjęcia) za pomocą menu.

Aplikację w działaniu przedstawia rys. 1.

Rys. 1. Aplikacja w działaniu

Wykonanie menu

Aplikacją będziemy zarządzać poprzez menu. Aby uzyskać na formularzu menu – dodamy do niego obiekt MenuStrip (menu rozwijalne). Po dodaniu menu do formularza „zadokuje się” ono u góry pod paskiem tytułu formularza. Aby uzyskać pozycje menu należy je wpisać w pola „Wpisz tutaj” („Tape here”). Zbudujmy menu w postaci:

Aveo Film SizeMode Interval

Aveo 3 drzwiowe Start Normal Interval 1000 Aveo 4 drzwiowe Stop AutoSize Interval 500 Aveo 5 drzwiowe CenterImage Interval 200

Zoom

Pozycje z menu Aveo będą wyświetlały na formularzu zdjęcia modeli samochodu w jego trzech wersjach.

Obiektem, w którym wyświetlimy obrazy map bitowych (zdjęcia w formacie jpg) jest PictureBox.

Dodajmy ten obiekt do formularza pod menu, tak aby zajmował prawie cały formularz. Pozostawmy jego nazwę domyślną - PictureBox1.

Aby w obiekcie PictureBox1 wyświetlić obraz z pliku, np. aveo3,jpg należy umieścić w kodzie polecenie:

PictureBox1.Image = System.Drawing.Image.FromFile("C:\TKM\gr_1.4\Anim\Aveo4.jpg")

Aby uzyskać dostęp do edytora kodu i wpisać kod procedury obsługi zdarzenia: „kliknięcie na pozycję menu Aveo 3 drzwiowe” należy kliknąć 2 razy w tę pozycję menu. Otworzy się wtedy okno edytora kodu z gotowym szkieletem procedury:

Private Sub Aveo3DrzwioweToolStripMenuItem_Click(sender As Object, e As EventArgs) _

Handles Aveo3DrzwioweToolStripMenuItem.Click End Sub

Należy wpisać do niego jedną linijkę kodu i da nam to całą procedurę pozwalającą wyświetlić w obiekcie PictureBox1 plik ze zdjęciem aveo3.jpg znajdujący się na odpowiedniej ścieżce dostępu (która musi być napisana poprawnie).

Private Sub Aveo3DrzwioweToolStripMenuItem_Click(sender As Object, e As EventArgs) _ Handles Aveo3DrzwioweToolStripMenuItem.Click PictureBox1.Image = System.Drawing.Image.FromFile("C:\TKM\gr_1.4\Anim\Aveo3.jpg") End Sub

(2)

vb5_anim.doc

Copyright © 2017, Janusz Bonarowski 2

Procedurę możemy zabezpieczyć przed awaryjnym zakończeniem aplikacji (np. w przypadku braku pliku do wyświetlenia lub błędnie podanej ścieżki dostępu) za pomocą struktury Try ... Catch:

Private Sub Aveo3DrzwioweToolStripMenuItem_Click(sender As Object, e As EventArgs) _ Handles Aveo3DrzwioweToolStripMenuItem.Click Try

PictureBox1.Image =

System.Drawing.Image.FromFile("C:\TKM\gr_1.4\Anim\Aveo2.jpg") ' Tu jest błąd, powinno być Aveo3.jpg.

Catch ex As Exception MsgBox(ex.Message) MsgBox(Err.Source) MsgBox(Err.Description) MsgBox(Err.Number)

MsgBox("Brak pliku do wyświetlenia. Sprawdź nazwę i/lub ścieżkę dostępu.") End Try

End Sub

Oczywiście umieścimy tylko jedną z informacji wyświetlaną w MsgBox.

Film

Aby wyświetlić film posłużymy się obiektem Timer, dodając go do formularza. Obiekt ten, gdy jest włączony – instrukcją Timer1.Enabled = True samodzielnie uruchamia zdarzenie Timer1_Tick, pojawiające się co definiowany przedział czasu Interval wyrażony w milisekundach

(tzn. jeśli Interval = 1000 to zdarzenie pojawiać się będzie co 1 sekundę).

Aby podczas pojawiających się zdarzeń wyświetlane były kolejne zdjęcia

o nazwach od ren50.jpg do ren57.jpg musimy zmodyfikować postać ścieżki dostępu do kolejnych plików.

Ścieżka ta powinna kolejno przyjmować postać:

PictureBox1.Image = System.Drawing.Image.FromFile("C:\TKM\gr_1.4\Anim\ren50.jpg") PictureBox1.Image = System.Drawing.Image.FromFile("C:\TKM\gr_1.4\Anim\ren51.jpg") PictureBox1.Image = System.Drawing.Image.FromFile("C:\TKM\gr_1.4\Anim\ren52.jpg")

. . .

PictureBox1.Image = System.Drawing.Image.FromFile("C:\TKM\gr_1.4\Anim\ren57.jpg")

Aby to uzyskać podzielimy ścieżkę:

1. Zapiszemy początek ścieżki w zmiennej pocz:

Dim pocz As String = "C:\TKM\gr_1.4\Anim\ren5"

2. Przyjmiemy zmienna i, która będzie zmieniała się od 0 do 7 i wykorzystam do zmieniania ostatniej cyfry w numerze pliku:

PictureBox1.Image = System.Drawing.Image.FromFile(pocz & i.ToString & ".jpg") Aby zmienna i utrzymywała swoją, coraz to wyższą wartość, podczas działania aplikacji, umieścimy ja poza wszystkimi procedurami, dzięki temu będzie miała zasięg globalny.

Film będzie uruchamiany z menu po wybraniu pozycji Film -> Start i Film -> Stop. Pozycje te wykonają po jednej instrukcji:

Timer1.Enabled = True 'Uruchomienie Timera Timer1.Enabled = False 'Zatrzymanie Timera

(3)

vb5_anim.doc

Copyright © 2017, Janusz Bonarowski 3

Styl wyświetlania

Styl wyświetlania będziemy określać poprzez wybory z menu SizeMode definiując właściwości SizeMode obiektu PictureBox1 instrukcją:

PictureBox1.SizeMode = PictureBoxSizeMode.styl gdzie styl to:

Normal

Obraz zostanie umieszczony w lewym górnym rogu PictureBox’u i będzie obcięty, jeśli jest większy niż PictureBox, w którym się znajduje.

AutoSize

PictureBox przyjmie rozmiar wielkości obrazu, który w sobie zawiera.

CenterImage

Jeśli obraz jest mniejszy od PictureBoxu - jest w nim centrowany,

jeśli obraz jest większy od PictureBoxu - jest centrowany, a krawędzie obcinane.

Zoom

Obrazu jest zwiększany lub zmniejszany do wypełnienia PictureBox’u z zachowaniem proporcji długości boków.

np.:

PictureBox1.SizeMode = PictureBoxSizeMode.Zoom

Menu Interval

Pozycje tego menu określają wartość właściwości Interval dla Timera. Interval określa co jaki przedział czasu ma pojawić się zdarzenie Timer1_Tick. Wartość właściwości podajemy w milisekundach.

Określenie właściwości odbywa się instrukcją:

Timer1.Interval = 1000

Kod aplikacji

Dim i As Integer = 0

Private Sub Aveo3DrzwioweToolStripMenuItem_Click(sender As Object, e As EventArgs) _ Handles Aveo3DrzwioweToolStripMenuItem.Click Try

PictureBox1.Image =

System.Drawing.Image.FromFile("C:\TKM\gr_1.4\Anim\Aveo3.jpg") Catch ex As Exception

' Należy wybrać jedną z instrukcji:

MsgBox(ex.Message) MsgBox(Err.Source) MsgBox(Err.Description) MsgBox(Err.Number)

MsgBox("Brak pliku do wyświetlenia") End Try

End Sub

Private Sub Aveo4DrzwioweToolStripMenuItem_Click(sender As Object, e As EventArgs) _ Handles Aveo4DrzwioweToolStripMenuItem.Click PictureBox1.Image =

System.Drawing.Image.FromFile("C:\TKM\gr_1.4\Anim\Aveo4.jpg") End Sub

Private Sub Aveo5DrzwioweToolStripMenuItem_Click(sender As Object, e As EventArgs) _ Handles Aveo5DrzwioweToolStripMenuItem.Click PictureBox1.Image =

System.Drawing.Image.FromFile("C:\TKM\gr_1.4\Anim\Aveo5.jpg") End Sub

(4)

vb5_anim.doc

Copyright © 2017, Janusz Bonarowski 4

Private Sub StartToolStripMenuItem_Click(sender As Object, e As EventArgs) _

Handles StartToolStripMenuItem.Click Timer1.Enabled = True 'Uruchomienie Timera

End Sub

Private Sub StopToolStripMenuItem_Click(sender As Object, e As EventArgs) _

Handles StopToolStripMenuItem.Click Timer1.Enabled = False 'Zatrzymanie Timera

End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick Dim pocz As String = "C:\TKM\gr_1.4\Anim\ren5"

If i = 8 Then i = 0 End If

PictureBox1.Image = System.Drawing.Image.FromFile(pocz & i.ToString & ".jpg") i = i + 1

End Sub

Private Sub NormalToolStripMenuItem_Click(sender As Object, e As EventArgs) _ Handles NormalToolStripMenuItem.Click ' Obraz zostanie umieszczony w lewym górnym rogu PictureBox

' i jest obcięty, jeśli jest większy niż PictureBox, w którym się znajduje.

PictureBox1.SizeMode = PictureBoxSizeMode.Normal End Sub

Private Sub AutoSizeToolStripMenuItem_Click(sender As Object, e As EventArgs) _ Handles AutoSizeToolStripMenuItem.Click ' PictureBox jest wielkości równej wielkości obrazu, który zawiera.

PictureBox1.SizeMode = PictureBoxSizeMode.AutoSize End Sub

Private Sub CenterImageToolStripMenuItem_Click(sender As Object, e As EventArgs) _ Handles CenterImageToolStripMenuItem.Click ' Jeśli obraz < od PictureBoxu - jest centrowany,

' jeśli obraz > od PictureBoxu - jest centrowany, a krawędzie obcinane.

PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage End Sub

Private Sub ZoomToolStripMenuItem_Click(sender As Object, e As EventArgs) _

Handles ZoomToolStripMenuItem.Click ' Obrazu jest zwiększany lub zmniejszany

' Z zachowaniem proporcji długości boków.

PictureBox1.SizeMode = PictureBoxSizeMode.Zoom End Sub

Private Sub Interval1000ToolStripMenuItem_Click(sender As Object, e As EventArgs) _ Handles ToolStripMenuItem2.Click Timer1.Interval = 1000

End Sub

Private Sub Interval500ToolStripMenuItem_Click(sender As Object, e As EventArgs) _ Handles ToolStripMenuItem3.Click Timer1.Interval = 500

End Sub

Private Sub Interval200ToolStripMenuItem_Click(sender As Object, e As EventArgs) _ Handles ToolStripMenuItem4.Click Timer1.Interval = 200

End Sub

Cytaty

Powiązane dokumenty

W ramach rozbudowy pasażu Róży powstanie również łącznik z placem Wolności.... Rozbudowany pasaż będzie tym, na co czekają łodzianie -

Odbywa się to tylko jeśli użytkownik zgłasza się z prośbą o pomoc do asystenta bibliotecznego, a ten zmuszony jest poprosić o nią dyżurnego biblio- tekarza, który schodzi

Zaznacz ołówkiem lub wskaż palcem ile znajduje się pisanek na obrazkach.. Wskaż palcem lub zaznacz ołówkiem

Niniejsze ogłoszenie wywiesza się na tablicy ogłoszeń w siedzibie Urzędu Miasta i Gminy Lądek-Zdrój przy ul. do 13 kwietnia 2021 r., a także będzie ono podane do publicznej

W przypadku uczestnictwa w przetargu jednego z małżonków zaleca się przedłożenie pisemnego oświadczenia woli drugiego małżonka o wyrażeniu zgody na nabycie

W przypadku reprezentowania osoby prawnej przez pełnomocnika należy okazać odpowiednie pełnomocnictwo (w oryginale lub kopii potwierdzonej za zgodność z oryginałem). W

Dni stają się coraz dłuższe, a Słońce coraz słabiej ogrzewa powierzchnię Ziemi.. Dni stają się coraz krótsze, a Słońce coraz silniej ogrzewa

W przypadku uczestnictwa w przetargu jednego z małżonków zaleca się przedłożenie pisemnego oświadczenia woli drugiego małżonka o wyrażeniu zgody na nabycie nieruchomości ze