Visual basic problem ze mnienna statyczną


(Rastaman697) #1

witam piszę program który przesuwa kółko za pomocą scrollbara i wizę że jest problem ze zmienną statyczną ilość 

Private Sub Form_Paint()
    ' Draw a solid black line 200 twips from the top of the form.
    Line (400, 600)-(ScaleWidth - 1100, 600), vbBlack
    Line (ScaleWidth - 400, 1200)-(1100, 1200), vbBlack
    Line (400, 1800)-(ScaleWidth - 1100, 1800), vbBlack
    Line (400, 2400)-(ScaleWidth - 400, 2400), vbBlack
    Line (400, 0)-(400, 2400), vbBlack
    Line (ScaleWidth - 400, 0)-(ScaleWidth - 400, 2400), vbBlack
End Sub

Static Sub scroll_Change()

Static x As Integer
Static y As Integer
Static x1 As Integer
Static y1 As Integer
Static wynik As Integer
Static ilosc As Integer

x = scroll.Value
 y = 299 + (600 * ilosc)

ilosc = 0
Circle (x1, y1), 280, vbWhite
Circle (x, y), 280, vbRed
x1 = x
y1 = y
wynik = ilosc Mod 2
Frame1 = ilosc

If x = 3500 Or x = 1000 Then
    ilosc = ilosc + 1
    y = 299 + (600 * ilosc)
End If

End Sub

(floyd) #2

Masz ustawione na początku: ilosc = 0 czyli przy każdym przysunięciu kółka, nawet jeśli zmienna ilosc zwiększy się o 1 to nastąpi powrót do: ilosc=0

Zadeklaruj tę zmienną na zewnątrz (general) przez: dim ilosc as integer i zeruj ją po trzech przebiegach czyli gdy przyjmie wartość 4

ilosc=ilosc+1

if ilosc=4 then ilosc=0

(Ja bym wszystkie deklaracje zmiennych wyrzucił na zewnątrz.)