Lab5, Visual Basic Lab 5b, Visual Basic Lab 3


UKO Użytkowanie Komputerów

Visual Basic Lab 5

I. Projekt Mysz daje okazję do zapoznania się z następującymi możliwościami Visual Basica:

  1. obsługiwanie przycisków myszy;

  2. obsługiwanie zdarzeń myszy;

  3. programowanie operacji przeciągnij i upuść.

W oknie narzędziowym nie ma kontrolki myszy, gdyż aplikacja ma reagować na zdarzenia związane z działaniem myszy (kliknięcia przycisku, dwukrotne kliknięcie przycisku, przeciąganie i upuszczanie, zmiana pozycji...), a nie na jej właściwości. Poniżej podajemy, jakie wartości należy przypisać właściwości MousePointer obiektu, nad którym przemieszcza się mysz, aby zmienić kształt wskaźnika myszy w trakcie tej operacji.

Nazwa stałej

Wartość

Opis

vbArrow

1

Strzałka standardowa

vbCrosshair

2

Krzyż nitkowy

vbIbeam

3

Kursor tekstowy I

vbIconPointer

4

Ikona

vbSizePointer

5

Poczwórna strzałka w górę, w dól, w prawo, w lewo

vbSizeNESW

6

Podwójna strzałka Pn-W i Pd-Z

vbSizeNS

7

Podwójna strzałka w górę i w dół

vbSizeNWSE

8

Podwójna strzałka w górę i w dół

vbSizeWE

9

Podwójna strzałka Pn-Z i Pd-W

vbUpArrow

10

Strzałka w górę

vbHourglass

11

Klepsydra

vbNoDrop

12

Nie upuszczać

vbArrowHourglass

13

Klepsydra ze strzałką

vbArrowQuestion

14

Znak zapytania ze strzałką

vbSizeAll

15

Podwójna strzałka przy zmianie rozmiaru okna

vbCustom

99

Kształt wskazany przy właściwości MouseIcon

Visual Basic generuje zdarzenie przesunięcia myszy dopiero po wykryciu przesunięcia po każdym 10-15 twipach.

Krok 1.

Projektujemy formę, pozwalającą użytkownikowi zapoznać się z obsługą myszy.

0x01 graphic

Rys. V.I.1. Forma do ćwiczeń z obsługą myszy.

Opis kontrolek formy z Rys. V.I.1.

Kontrolka, właściwość

Wartość

Forma, Name

frmMysz

Forma, Caption

Mysz

Forma, Moveable

False

Forma, MaxButton

False

Pole tekstowe, Name

txtMysz

Pole tekstowe, Alignment

2 - Center

Pole tekstowe, Multiline

True

Pole tekstowe, Text

Nie bój się myszy!

Pole tekstowe, Locked

True

Obraz, Name

obrNiespodzianka

Obraz, Picture

ścieżka dostępu

Obraz, Name

obrCos

Obraz, Picture

ścieżka dostępu

Przycisk poleceń, Name

plcKoniec

Przycisk poleceń, Caption

&Koniec

Kod formy z Rys. V.I.1

01 Private Sub Form_Click()

02 txtMysz.Text = "Kliknąłeś formę!"

03 Beep 'Daj sygnał, że klikąłes formę

04 Print "Kliknąłeś formę!"

05 End Sub

06

07 Private Sub Form_DblClick()

08 txtMysz.Text = "Dwukrotnie kliknąłeś formę!"

09 Beep 'Daj sygnał, że dwukrotnie kliknąłeś formę

10 Beep

11 Print "Dwukrotnie kliknąłeś formę!"

12 End Sub

13

14 Private Sub Form_MouseDown(Button As Integer, _

15 Shift As Integer, _

16 X As Single, Y As Single)

17 'Przycisk myszy naciśnięty

18 txtMysz.Text = "Przycisnąłeś przycisk myszy w X = " _

19 & X & ", Y = " & Y & _

20 " punkcie formy!"

21 End Sub

22

23 Private Sub Form_MouseMove(Button As Integer, _

24 Shift As Integer, _

25 X As Single, Y As Single)

26 'Tu nie wykorzystujemy argumentów myszy

27 txtMysz.Text = "Mysz jest przesuwana...!"

28 End Sub

29

30 Private Sub obrNiespodzianka_Click()

31 'Kliknąłeś obrazek

32 txtMysz.Text = "Kliknąłeś obrazek!"

33 Beep

34 Print "Kliknąłeś obrazek!"

35 End Sub

36

37 Private Sub obrNiespodzianka_DblClick()

38 'Kliknąłeś obrazek dwukrotnie

39 txtMysz.Text = "Kliknąłeś obrazek dwukrotnie!"

40 Beep

41 Beep

42 Print "Kliknąłeś obrazek dwukrotnie!"

43 End Sub

44

45 Private Sub obrNiespodzianka_MouseDown(Button As Integer, _

46 Shift As Integer, _

47 X As Single, Y As Single)

48 'Przycisk myszy naciśnięty nad obrazkiem

49 txtMysz.Text = "Przycisnąłeś przycisk myszy w X = " _

50 & X & ", Y = " & Y & _

51 " punkcie obrazka!"

52 End Sub

53

54 Private Sub obrNiespodzianka_MouseMove(Button As Integer, _

55 Shift As Integer, _

56 X As Single, Y As Single)

57

58 'Mysz jest przesuwana nad obrazkiem...!

59 txtMysz.Text = "Mysz jest przesuwana nad obrazkiem...!"

60 End Sub

61

62 Private Sub Form_DragDrop(Source As Control, _

63 X As Single, Y As Single)

64 'ustaw DragMode obrNiespodzianka na 1-Automatic

65 obrCos.DragMode = 0

66 obrNiespodzianka.DragMode = 1

67 Source.Move X, Y 'upuść obrazek

68 End Sub

69

70 Private Sub obrCos_MouseDown(Button As Integer, _

71 Shift As Integer, _

72 X As Single, Y As Single)

73 'ustaw DragMode obrCos na 0-Manual

74 obrNiespodzianka.DragMode = 1

75 obrCos.DragMode = 0

76 obrCos.Drag 'inicjuje przeciągnij i upuść

77 End Sub

78

79 Private Sub plcKoniec_Click()

80 Dim intReply As Integer

81

82 'Badanie, czy kończymy

83 intReply = MsgBox("Czy na pewno chcesz zakończyć pracę?", _

84 vbYesNo, _

85 "Zakończyć pracę?")

86

87 If (intReply = 6) Then

88 ' Kod, gdy opowiedz Tak

89 Beep

90 End

91 GoTo Koniec

92 Else

93 ' Kod, gdy odpowiedz Nie

94 GoTo Koniec

95 End If

96 Koniec: 'Wyjdź z aplikacji

97 End Sub

Kod zawiera różne procedury związane z aktywnością (zdarzeniami) myszy:

  1. procedury związane z szybkim pojedynczym lub podwójnym naciśnięciem przycisku myszy:

Form_Click() (linia 1)

DblClick() (linia 7)

obrNiespodzianka_Click() (linia 30)

obrNiespodzianka_DblClick() (linia 37)

  1. procedury związane z wciśnięciem i przytrzymaniem przycisku myszy:

MouseDown(Button As Integer, _

Shift As Integer, _

X As Single, Y As Single) (linia 45, 70)

  1. procedury związane z ruchem myszy:

MouseMove(Button As Integer, _

Shift As Integer, _

X As Single, Y As Single) (linia 54)

  1. implementacja automatycznego (a) i ręcznego (b) przeciągania i upuszczania obiektów:

(a) Form_DragDrop(Source As Control, _

X As Single, Y As Single) (linia 62)

(b) obrCos_MouseDown(Button As Integer, _

Shift As Integer, _

X As Single, Y As Single) (linia 70)

Kod związany z przyciskiem poleceń kończącym aplikację pokazany jest w liniach 79 -97.

Procedura badająca zwolnienie przycisku myszy nosi nazwę MouseUp.

Zadanie domowe:

Napisz aplikację wykrywającą wciśnięcie kombinacji przycisków myszy i klawiatury. Szkielet kodu przytaczamy poniżej.

01 Private Sub obrLadny_MouseDown(Button As Integer, _

02 Shift As Integer, _

03 X As Single, Y As Single)

04 Dim intStanShift As Integer

05 intStanShift = Shift And 7 `specjalne AND bitowe

06 Select Case intStanShift

07 Case 1

08 `Kod dla kombinacji z [Shift]

09 Case 2

10 `Kod dla kombinacji z [Ctrl]

11 Case 3

12 `Kod dla kombinacji z [Alt]

13 Case 4

14 `Kod dla kombinacji z [Shift + Ctrl]

15 Case 5

16 `Kod dla kombinacji z [Shift +Alt]

17 Case 6

18 `Kod dla kombinacji z [Ctrl + Alt]

19 Case 7

20 `Kod dla kombinacji z [Shift+Ctrl+Alt]

21 End Select

22 End Sub

II. Projekt Lista daje okazję do zapoznania się z następującymi możliwościami Visual Basica:

  1. korzystanie z pól listy prostej i listy rozwijanej;

  2. korzystanie z pól prostego kombo i rozwijanego kombo;

  3. inicjowanie, dodawanie i usuwanie elementów list;

Kontrolka prostego pola listy 0x01 graphic
umożliwia wybranie jednego elementu lub więcej niż jednego elementów równocześnie. Do dodawania elementów list najlepiej służy metoda AddItem. Odpowiednie polecenia umieszczamy w procedurze zdarzenia Form_Load. Jeśli okno listy jest zbyt małe i nie widać wszystkich elementów listy, to automatycznie dołączane są paski przewijania. Niezależnie od powyższych czynności, warto usunąć zawartość właściwości LIST kontrolki pola listy. Jeśli tego nie zrobimy, to ta zawartość będzie wykorzystywana jako początkowy fragment listy.

Ustawienie właściwości Sorted na True, spowoduje posortowanie listy alfabetycznie. Metoda RemoveItem usuwa elementy listy, a ListCount znajduje liczbę elementów listy.

  1. Lista rozwijana zajmuje w formie tylko jedną linię do czasu, aż użytkownik otworzy listę i wyświetli jej zawartość

  2. Proste pole kombo, wygląda jak proste pole listy z dołączonym polem tekstowym.

  3. Pole kombo rozwijane oszczędza miejsca na ekranie, bo jest zwinięte i rozwija się tylko na żądanie użytkownika.

Wszystkie trzy powyższe obiekty obsługuje kontrolka pola kombo 0x01 graphic
, a różnice miedzy nimi uzyskuje się za pomocą wyboru wartości właściwości Style

Nazwa stałej

Wartość

Opis

DropDown Combo

0

Pole kombo rozwijane

Simple Combo

1

Proste pole kombo

DropDown List

2

Lista rozwijana

0x01 graphic

Rys. V.II.1 Projekt formy do pracy z listami

Opis kontrolek formy z Rys. V.II.1.

Kontrolka, właściwość

Wartość

Forma, Name

frmKolory

Forma, Caption

Kolory

Forma, MaxButton

False

Forma, Moveable

False

Pole tekstowe, Name

txtKolory

Pole tekstowe, Alignment

0 - Left Justify

Pole tekstowe, Font

Zmień na inny niż w lstKolory

Pole tekstowe, Locked

True

Pole tekstowe, Multiline

False

Pole tekstowe, Text

Pole etykiety, Name

etkKolory

Pole etykiety, Alignment

2 - Center

Pole etykiety, Caption

Kolory

Pole etykiety, MousePointer

vbCrossHair

Pole etykiety, Name

etkProstePoleListy

Pole etykiety, Alignment

0 - Left Justify

Pole etykiety, Caption

Proste pole listy:

Pole etykiety, Name

etkPoleListyRozwijanej

Pole etykiety, Alignment

0 - Left Justify

Pole etykiety, Caption

Pole listy rozwijanej:

Pole etykiety, Name

etkProsteKombo

Pole etykiety, Alignment

0 - Left Justify

Pole etykiety, Caption

Pole prostego kombo

Pole etykiety, Name

etkKomboRozwijane

Pole etykiety, Alignment

0 - Left Justify

Pole etykiety, Caption

Pole rozwijanego kombo

Pole listy, Name

lstKolory

Pole listy, ItemData

Pole listy, ToolTipText

Proste pole listy

Pole listy, Name

lsrListaRozwijana

Pole listy, ItemData

Pole listy, Text

Pole listy, ToolTipText

Lista rozwijana

Pole listy, Name

lkpProsteKombo

Pole listy, ItemData

Pole listy, Text

Pole listy, ToolTipText

Proste kombo

Pole listy, Name

lkrRozwijaneKombo

Pole listy, ItemData

Pole listy, Text

Pole listy, ToolTipText

Rozwijane kombo

Przycisk poleceń, Name

plcKoniec

Przycisk poleceń, Caption

&Koniec

Przycisk poleceń, ToolTipText

Przycisk kończący aplikację

Kod formy z Rys. V.II.1

1 Private Sub Form_Load()

2 'Startowe wartości list

3

4 'Dodawanie elementów do prostego pola listy

5 lstKolory.AddItem "Czerwony"

6 lstKolory.AddItem "Niebieski"

7 lstKolory.AddItem "Zielony"

8 lstKolory.AddItem "Żółty"

9 lstKolory.AddItem "Pomarańczowy"

10 lstKolory.AddItem "Biały"

11 lstKolory.AddItem "Fioletowy"

12 lstKolory.AddItem "Czarny"

13 lstKolory.AddItem "Amarantowy"

14 lstKolory.AddItem "Indygo"

15 lstKolory.AddItem "Śliczny"

16 lstKolory.AddItem "Sztuczny"

17 lstKolory.AddItem "Seledynowy"

18

19 'Dodawanie elementów do rozwijanego pola listy

20 lsrListaRozwijana.AddItem "Czerwony"

21 lsrListaRozwijana.AddItem "Niebieski"

22 lsrListaRozwijana.AddItem "Zielony"

23 lsrListaRozwijana.AddItem "Żółty"

24 lsrListaRozwijana.AddItem "Pomarańczowy"

25 lsrListaRozwijana.AddItem "Biały"

26 lsrListaRozwijana.AddItem "Abc"

27 lsrListaRozwijana.AddItem "Abra"

28 lsrListaRozwijana.AddItem "Aa"

29

30 'Dodawanie elementów do prostego pola kombo

31 lkpProsteKombo.AddItem "Czerwony"

32 lkpProsteKombo.AddItem "Niebieski"

33 lkpProsteKombo.AddItem "Zielony"

34 lkpProsteKombo.AddItem "Żółty"

35 lkpProsteKombo.AddItem "Pomarańczowy"

36 lkpProsteKombo.AddItem "Biały"

37

38 'Dodawanie elementów do rozwijanego pola kombo

39 lkrRozwijaneKombo.AddItem "Czerwony"

40 lkrRozwijaneKombo.AddItem "Niebieski"

41 lkrRozwijaneKombo.AddItem "Zielony"

42 lkrRozwijaneKombo.AddItem "Żółty"

43 lkrRozwijaneKombo.AddItem "Pomarańczowy"

44 lkrRozwijaneKombo.AddItem "Biały"

45 End Sub

46

47

48 Private Sub lkpProsteKombo_LostFocus()

49

50 Dim intI As Integer

51 Dim N As Integer

52 Dim intR As Integer

53

54 'Dodaje nowy element do listy

55

56 N = lkpProsteKombo.ListCount

57 For intI = 0 To N - 1

58 If (lkpProsteKombo.Text = lkpProsteKombo.List(intI)) Then

59 intR = MsgBox("Taki kolor już istnieje!", _

60 vbCritical, _

61 "Info o kolorze")

62 GoTo Skok

63 End If

64 Next intI

65 lkpProsteKombo.AddItem lkpProsteKombo.Text

66 Skok: 'Zakończ procedurę dodawania koloru do listy

67 End Sub

68 Private Sub lsrListaRozwijana_LostFocus()

69

70 Dim intI As Integer

71 Dim N As Integer

72

73 'Usuwa wybrany element z listy kolorów

74

75 N = lsrListaRozwijana.ListCount

76 For intI = 0 To N - 1

77 If (lsrListaRozwijana.Text = lsrListaRozwijana.List(intI)) Then

78 lsrListaRozwijana.RemoveItem intI

79 GoTo Skok

80 End If

81 Next intI

82 Skok: 'Zakończ usuwanie koloru z listy

83 End Sub

84 Private Sub lstKolory_Click()

85 'Skopiuj wybrany element do pola tekstowego

86 txtKolory.Text = lstKolory.Text

87 End Sub

88

89 Private Sub plcUsuńKolor_Click()

90 'Usuwa wybrany element z listy

91 'Służy do zmiany fokusu

92 End Sub

93

94 Private Sub plcDodajKolor_Click()

95 'Dodaje nowy kolor do listy

96 'Służy do zmiany fokusu

97 End Sub

98

99 Private Sub plcKoniec_Click()

100 Dim intReply As Integer

101

102 'Badanie, czy kończymy

103 intReply = MsgBox("Czy na pewno chcesz zakończyć pracę?", _

104 vbYesNo, _

105 "Zakończyć pracę?")

106

107 If (intReply = vbYes) Then

108 ' Kod, gdy opowiedź Tak

109 Beep

110 End

111 GoTo Koniec

112 Else

113 ' Kod, gdy odpowiedź Nie

114 GoTo Koniec

115 End If

116 Koniec: 'Wyjdź z aplikacji

117 End Sub

UKO Użytkowanie Komputerów, Lab 5

Visual Basic Lab 5.doc 10/10



Wyszukiwarka

Podobne podstrony:
Lab6, Visual Basic Lab 6a, Visual Basic Lab 3
Lab6, Visual Basic Lab 6, Visual Basic Lab 3
Lab7, Visual Basic Lab 7a, 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

więcej podobnych podstron