Visual Basic Lab 5 , Visual Basic Lab 3


UKO Użytkowanie Komputerów

Visual Basic Lab 5

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

  1. obsługiwanie przycisków myszy;

  2. 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 o każde 10-15 twipów.

Krok 1.

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

0x01 graphic

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

Opis kontrolek formy z Rys. 1.

Kontrolka, właściwość

Wartość

Forma, Name

frmMysz

Forma, Caption

Mysz

Pole tekstowe, Name

txtMysz

Pole tekstowe, Alignment

2 - Center

Pole tekstowe, Multiline

True

Pole tekstowe, Text

Nie bój się myszy!

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

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ą myszy:

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

Form_Click() (linia 1, 30),

DblClick() (linia 7, 37),

obrNiespodzianka_Click()(linia 7),

obrNiespodzianka_DblClick()(linia 7),

  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 list i listy rozwijanej;

  2. inicjowanie, dodawanie i usuwanie elementów z kontrolki listy;

  3. praca z tablicami kontrolek.

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

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

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

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

Pole kombi 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 kombi 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 kombi rozwijane

Simple Combo

1

Proste pole kombi

DropDown List

2

Lista rozwijana

UKO Użytkowanie Komputerów, Lab 5

Visual Basic Lab 5.doc 6/6



Wyszukiwarka