Lab7, Visual Basic Lab 7a, Visual Basic Lab 3


UKO Użytkowanie Komputerów

Visual Basic Lab 7

Projekty z dzisiejszych zajęć dają okazję do zapoznania się z następującymi elementami pracy z Visual Basic'iem:

  1. kontrolki pola rysunku i obrazu;

  2. metody rysowania;

  3. rysowanie punktów, linii, płaskich figur geometrycznych;

W Visual Basicu występują dwie kontrolki, często ze sobą mylone:

Spełniają one podobne role, pozwalając na umieszczenie w formie projektowej rysunków pochodzących z plików graficznych. Różnice są następujące:

    1. kontrolka pola rysunku jest bardziej elastyczna, ma więcej możliwości;

    2. kontrolka obrazu lepiej działa na wolniejszych komputerach.

Obsługują one pliki o następujących rozszerzeniach:

BMP, CUR, GIF, ICO, JPEG, JPG, WMF, EMF, RLE.

Najważniejszą właściwością tych kontrolek jest właściwość Picture, zawierająca ścieżkę dostępu do odpowiedniego pliku graficznego. Plik można również załadować posługując się instrukcją LoadPicture.

Przykład VII.1

Instrukcja przypisująca plik graficzny właściwości Picture pola rysunku:

rysTwarz.Picture = LoadPicture(”z:\UKO\Lab7\Buzia.jpg”)

Składnia instrukcji LoadPicture jest następująca:

LoadPicture ([NazwaPlikuGraficznego][, varRozmiar] _

[, varKolor][, varX, varY])

Wywołanie instrukcji LoadPicture bez parametrów usuwa istniejący rysunek z kontrolki.

Tabela VII.1. Wartości stałych varRozmiar argumentu funkcji LoadPicture

Nazwa stałej

Wartość

Opis

vbLPSmall

0

Mała ikona systemowa w rozdzielczości graficznej

vbLPLarge

1

Duża ikona systemowa w rozdzielczości graficznej

vbLPSmallShell

2

Określona przez parametry panelu sterowania

vbLPLargeShell

3

Określona przez parametry panelu sterowania

vbLPCustom

4

Rozmiar określają argumenty varX i varY

Zmienne varX i varY są wymagane dla vbLPSmallShell, vbLPLargeShell i vbLPCustom.

Tabela VII.2. Wartości stałych varKolor argumentu funkcji LoadPicture

Nazwa stałej

Wartość

Opis

vbLPDefault

0

Najwięcej kolorów

vbLPMonochrome

1

Dwa kolory

vbLPVGAColor

2

16 kolorów

vbLPColor

3

256 kolorów

Stałe varKolor z Tabeli VII.2 należy podawać przy umieszczaniu ikon i definiowaniu kształtów kursora.

W celu dobrego dopasowania obrazka do okienka, należy ustawic właściwość Stretch na True.

Funkcję Load Picture można również użyć do umieszczenia rysunku w tle formy projektowej:

frmRysuj.Picture = LoadPicture(”Tlo.wmf”)

Poniżej przytaczamy przykład stylów wypełniania kształtów otrzymanych za pomocą kontrolki kształtów (Shape) 0x01 graphic
. Jest ich osiem: Solid, Transparent, Horizontal Line, Upward Diagonal, Downward Diagonal, Cross, Diagonal Cross.

0x08 graphic
0x01 graphic

Rys.VII.1. Osiem wartości właściwości FillStyle

Linię w formie można umieścić korzystając z kontrolki Line 0x01 graphic
. Istotne jej właściwości to:

0x08 graphic
Border line - określa kolor linii;

Border Style - określa 7 formatów linii:

Border Width - określa szerokość linii w punktach (0.35 mm)

X1, Y1, X2, Y2 - podają współrzędne początku i końca linii.

Projekt formy Kształt, służacej do zapoznania się z różnymi kształtami i wypełnieniami kształtów generowanych przez kontrolkę Shape.

Kontrolka, właściwość

Wartość

Forma, Name

frmKształt

Forma, Caption

Właściwości kontrolki kształtów

Forma, Height

4395

Forma, Width

4830

Pole listy nr 1, Name

lstWłściwośćShape

Pole listy nr 1, Height

1260

Pole listy nr 1, Left

0

Pole listy nr 1, Top

2400

Pole listy nr 1, Width

2295

Pole listy nr 2, Name

lstWłaściwośćFillStyle

Pole listy nr 2, Height

1260

Pole listy nr 2, Left

2400

Pole listy nr 2, Top

2400

Pole listy nr 2, Width

2295

Etykieta nr 1, Name

etkKształt

Etykieta nr 1, Caption

Shape

Etykieta nr 1, Height

420

Etykieta nr 1, Left

480

Etykieta nr 1, Top

2040

Etykieta nr 1, Width

1095

Etykieta nr 2, Name

etkWypełnienie

Etykieta nr 2, Caption

FillStyle

Etykieta nr 2, Height

420

Etykieta nr 2, Left

2880

Etykieta nr 2, Top

2040

Etykieta nr 2, Width

1410

Kształt, Name

kstKształt

Kształt, Height

1815

Kształt, Left

600

Kształt, Top

120

Kształt, Width

3615

Element manu nr 1, Caption

$Plik

Element manu nr 1, Name

mnuPlik

Element manu nr 2, Caption

&Koniec

Element manu nr 2, Name

mnuPlikKoniec

0x01 graphic

Rys.VII.2. Aplikacja Kształt umożliwiająca wybór kształtu i wypełnienia

Wydruk VII.1.

1 Private Sub Form_Load()

2 'Inicjalizacja pola listy kształtu

3 lstWłaściwośćShape.AddItem "0 - Rectangle"

4 lstWłaściwośćShape.AddItem "1 - Square"

5 lstWłaściwośćShape.AddItem "2 - Oval"

6 lstWłaściwośćShape.AddItem "3 - Circle"

7 lstWłaściwośćShape.AddItem "4 - Rounded Rectangle"

8 lstWłaściwośćShape.AddItem "5 - Rounded Square"

9

10 'Inicjalizacja pola listy wypełnienia

11 lstWłaściwośćFillStyle.AddItem "0 - Solid"

12 lstWłaściwośćFillStyle.AddItem "1 - Transparent"

13 lstWłaściwośćFillStyle.AddItem "2 - Horizontal Line"

14 lstWłaściwośćFillStyle.AddItem "3 - Vertical Line"

15 lstWłaściwośćFillStyle.AddItem "4 - Upward Diagonal"

16 lstWłaściwośćFillStyle.AddItem "5 - Downward Diagonal"

17 lstWłaściwośćFillStyle.AddItem "6 - Cross"

18 lstWłaściwośćFillStyle.AddItem "7 - Diagonal Cross"

19

20 'W każdej liście ustaw jako domyślny pierwszy element

21 lstWłaściwośćShape.ListIndex = 0

22 lstWłaściwośćFillStyle.ListIndex = 0

23 End Sub

24

25 Private Sub lstWłaściwośćFillStyle_Click()

26 'Zmień wypełnienie na wybrane

27 kstKształt.FillStyle = lstWłaściwośćFillStyle.ListIndex

28 End Sub

29

30 Private Sub lstWłaściwośćShape_Click()

31 'Zmień kształt na wybrany

32 kstKształt.Shape = lstWłaściwośćShape.ListIndex

33 End Sub

34

35 Private Sub mnuPLikKoniec_Click()

36 'Zakończ aplikację

37 Beep

38 End

39 End Sub

Gdy pragniemy sami wykonać rysunek, to możemy posłużyć się metodą Pset, pozwalającą operować na poziomie pojedynczych pikseli.

frmNazwaFormy.Pset [Step](intX, intY), [kolor]

Kolor domyślny jest zgodny z ForeColor formy. Można go określać albo heksadecymalnie albo podając jedną ze stałych:

vbBlack, vbRed, vbGreen, vbYellow,

vbBlue, vbMagenta, vbCyan, vbWhite.

Parametr opcjonalny[Step] powoduje, że podane współrzędne stają się współrzędnymi względnymi, i następne są już liczone względem nich z krokiem równym parametrowi Step.

Przykład VII.1

Wyświetlenie piksela

frmDrawing.Pset (300,350)

Zamiast rysować piksele możemy od razu nazrusować linię, korzystając z metody Line. Oto jej fomat:

frmNazwaFormy.Line [Step] (intX1, intY1) - _

[Step] (intX2, intY2), [kolor] [B] [F]

Pary współrzędnych określają początek i koniec linii. Parametr opcjonalny [kolor] ma identyczne znaczenie jak w metodzie Pset. Parametr [B] oznacza rysowanie prostokąta (Box) ( wtym przypadku współrzędne określają przeciwległe wierzchołki), a parametr [F] wypełnia prostokąt kolorem. Jeśli nie podamy koloru, to musimy jednak dopisać dodatkowy przecinek

Przykład VII.2

Rysowanie wypełnionego prostokąta

frmRysuj.Line (1000, 1000) - (1500,1500), , BF

Metoda Circle służy do rysowania okręgów i elips. Oto jej format:

frmNazwaFormy.Circlr [Step] )intX, intY), sngPromień, _

[kolor, , , ] [sngSpłaszczenie]

Podając parametr spłaszczenia, rusyjemy elipsę, ale wtedy trzeba wstawić odpowiednią liczbę przecinków (oddzielających bardziej zaawansowane i nie omawiane tu parametry).

0x01 graphic

Rys.VII.3. Aplikacja Drawing rysująca piksele, linie i owale

Wydruk VII.2.

Listing aplikacji Drawing, rysującej piksele, linie, prostokąty i owale.

1 Private Sub plcPiksele_Click()

2 Dim intX As Integer

3

4 'Rysuj czerwone piksele co 100

5 For intX = 1 To 1000 Step 100

6 frmDrawing.PSet (intX, 250), vbRed

7 Next intX

8 End Sub

9

10 Private Sub plcLinia_Click()

11 Dim intX1 As Integer

12 Dim intY1 As Integer

13 Dim intX2 As Integer

14 Dim intY2 As Integer

15

16 intX1 = 200

17 intY1 = 300

18 intX2 = 1000

19 intY2 = 500

20

21 'Rysuj niebieską linię

22 frmDrawing.Line (intX1, intY1)-(intX2, intY2), vbBlue

23 End Sub

24

25 Private Sub plcSchody_Click()

26 Dim intXP As Integer

27 Dim intYP As Integer

28 Dim intXK As Integer

29 Dim intYK As Integer

30 Dim intLicznik As Integer

31

32 intXP = 0

33 intYP = 0

34 intXK = 500

35 intYK = 400

36

37 'Rysuj prostokąty jako magentowe schody

38 For intLicznik = 1 To 10

39 frmDrawing.Line (intXP, intYP) _

40 -(intXK, intYK) _

41 , vbMagenta, B

42 'Przygotuj wartości dla następnego schodka

43 intXP = intXP + 200

44 intYP = intYP + 200

45 intXK = intXK + 200

46 intYK = intYK + 200

47 Next intLicznik

48 End Sub

49

50

51 Private Sub plcOwale_Click()

52 'Narysuj dwie spłaszczone elipsy

53 Circle (1000, 1000), 1000, vbYellow, , , 0.25

54 Circle (2000, 1000), 1000, vbGreen, , , 4

55 End Sub

Literatura:

1. Greg Perry, Visual Basic 6 w 21 dni, Wydawnictwo RM, Warszawa, 1999.0x01 graphic
0x01 graphic
0x01 graphic

UKO Użytkowanie Komputerów, Lab 7

Visual Basic Lab 7.doc 4/7

0x01 graphic

0x01 graphic



Wyszukiwarka

Podobne podstrony:
Lab6, Visual Basic Lab 6a, Visual Basic Lab 3
Lab5, Visual Basic Lab 5b, Visual Basic Lab 3
Lab6, Visual Basic Lab 6, Visual Basic Lab 3
Lab3, Visual Basic Lab 3, Visual Basic Lab 3
Lab 2 Visual Analyser oraz kompresje v2
Visual Basic Przykładowe zadania , Studia i nauka, Visual Basic
Leksykon VISUAL BASIC, r00-05, Rozdział X
Visual Basic Zdarzenia , Studia i nauka, Visual Basic
Basic Two Router Cisco CCNA lab
visual basic
02 Wprowadzenie do Visual Basic cwiczenia przygotowujace
Makra programowanie w Visual Basic
Mastering Visual Basic NET Database Programming
Leksykon VISUAL BASIC, r01-05, Rozdział X
Visual Basic Operatory , Studia i nauka, Visual Basic

więcej podobnych podstron