DerStauner
Erfahrenes Mitglied
Hallo!
beim folgenden Code bekomme ich immer den Fehler "Case without Select Case" bei Case vbKeyRight, obwohl ich glaube, die Struktur ist fehlerfrei:
beim folgenden Code bekomme ich immer den Fehler "Case without Select Case" bei Case vbKeyRight, obwohl ich glaube, die Struktur ist fehlerfrei:
Code:
Public Sub MoveLeeresFeld(richtung As KeyCodeConstants)
'vorerst wird berechnet, wie die aktuelle Zahl in ihre Position
'bewegt werden muss (z. B. zweimal nach oben, und einmal nach
'rechts). Danach wird diese Methode aufgerufen (mit der entsprechenden
'Richtung). Diese Methode regelt, wie das leere Feld - im Verhältnis zu
'der Position der akt. Zahl - bewegt werden muss, um anschliessend die akt. Zahl
'in die gewünschte Richtung zu bewegen.
'z. B. wenn das leere Feld rechts von der akt. Zahl steht, und diese muss nach links
'bewegt werden, und die akt. Zahl ist zugleich in der ersten Reihe, muss das leere Feld
'um die akt. Zahl herum bewegt werden.
Select Case richtung
Case vbKeyUp:
'leeres Feld steht von rechts
If APX - LPX = -1 And APY = LPY Then
MoveZahlFeld (vbKeyDown)
MoveZahlFeld (vbKeyRight)
MoveZahlFeld (vbKeyUp)
End If
'leeres Feld steht von links
If APX - LPX = 1 And APY = LPY Then
MoveZahlFeld (vbKeyDown)
MoveZahlFeld (vbKeyLeft)
MoveZahlFeld (vbKeyUp)
End If
'leeres Feld steht von oben
If APY - LPY = 1 Then MoveZahlFeld (vbKeyUp)
'leeres Feld steht von unten
If APY - LPY = -1 Then
If APX = 1 Then
MoveZahlFeld (vbKeyLeft)
MoveZahlFeld (vbKeyDown)
MoveZahlFeld (vbKeyDown)
MoveZahlFeld (vbKeyRight)
MoveZahlFeld (vbKeyUp)
End If
If APX > 1 Then
MoveZahlFeld (vbKeyRight)
MoveZahlFeld (vbKeyDown)
MoveZahlFeld (vbKeyDown)
MoveZahlFeld (vbKeyLeft)
MoveZahlFeld (vbKeyUp)
End If
End If
Case vbKeyDown:
If APX - LPX = -1 And APY = LPY Then
MoveZahlFeld (vbKeyUp)
MoveZahlFeld (vbKeyRight)
MoveZahlFeld (vbKeyDown)
End If
If APX - LPX = 1 And APY = LPY Then
MoveZahlFeld (vbKeyUp)
MoveZahlFeld (vbKeyLeft)
MoveZahlFeld (vbKeyDown)
End If
If APY - LPY = 1 Then
If APX = 1 Then
MoveZahlFeld (vbKeyLeft)
MoveZahlFeld (vbKeyUp)
MoveZahlFeld (vbKeyUp)
MoveZahlFeld (vbKeyRight)
MoveZahlFeld (vbKeyDown)
End If
If APX > 1 Then
MoveZahlFeld (vbKeyRight)
MoveZahlFeld (vbKeyUp)
MoveZahlFeld (vbKeyUp)
MoveZahlFeld (vbKeyLeft)
MoveZahlFeld (vbKeyDown)
End If
If APY - LPY = -1 Then MoveZahlFeld (vbKeyDown)
Case vbKeyRight:
If APX - LPX = -1 And APY = LPY Then MoveZahlFeld (vbKeyRight)
If APX - LPX = 1 And APY = LPY Then
If APY = 1 Then
MoveZahlFeld (vbKeyUp)
MoveZahlFeld (vbKeyLeft)
MoveZahlFeld (vbKeyLeft)
MoveZahlFeld (vbKeyDown)
MoveZahlFeld (vbKeyRight)
End If
If APY > 1 Then
MoveZahlFeld (vbKeyDown)
MoveZahlFeld (vbKeyLeft)
MoveZahlFeld (vbKeyLeft)
MoveZahlFeld (vbKeyUp)
MoveZahlFeld (vbKeyRight)
End If
If APY - LPY = 1 Then
MoveZahlFeld (vbKeyLeft)
MoveZahlFeld (vbKeyUp)
MoveZahlFeld (vbKeyRight)
End If
If APY - LPY = -1 Then
MoveZahlFeld (vbKeyLeft)
MoveZahlFeld (vbKeyDown)
MoveZahlFeld (vbKeyRight)
End If
Case vbKeyLeft:
If APX - LPX = -1 And APY = LPY Then
If APY = 1 Then
MoveZahlFeld (vbKeyUp)
MoveZahlFeld (vbKeyRight)
MoveZahlFeld (vbKeyRight)
MoveZahlFeld (vbKeyDown)
MoveZahlFeld (vbKeyLeft)
End If
If APY > 1 Then
MoveZahlFeld (vbKeyDown)
MoveZahlFeld (vbKeyRight)
MoveZahlFeld (vbKeyRight)
MoveZahlFeld (vbKeyUp)
MoveZahlFeld (vbKeyLeft)
End If
If APX - LPX = 1 And APY = LPY Then MoveZahlFeld (vbKeyLeft)
If APY - LPY = 1 Then
MoveZahlFeld (vbKeyRight)
MoveZahlFeld (vbKeyUp)
MoveZahlFeld (vbKeyLeft)
End If
If APY - LPY = -1 Then
MoveZahlFeld (vbKeyRight)
MoveZahlFeld (vbKeyDown)
MoveZahlFeld (vbKeyLeft)
End If
End Select
End Sub