cardhu
01.10.2008, 21:21
Hallo was muss ich tun damit dieser Code in Basom funktioniert bin nicht sehr gut in Programmierung wäre für jede Hilfe dankbar auch andere Vorschläge die es mir ermöglichen Positionen in Arrays zu verschieben und die anderen aufrücken zu lassen
Danke schonmal
Public Function MoveInList(vList As Variant, _
ByVal nElement As Long, _
ByVal nMove As Long)
Dim i As Long
Dim vTemp As Variant
Dim nSize As Long
Dim nMode As Integer
' Dimensionsgröße
nSize = UBound(vList)
' Plausibilitätsprüfungen
If nElement + nMove < 0 Then
nMove = nMove - (nMove + nElement)
End If
If nElement + nMove > nSize Then
nMove = nSize - nElement
End If
' Mode: nach hinten oder nach vorne verschieben?
' (Vorzeichen ermitteln)
nMode = Sgn(nMove)
' Gültiger Wert?
If nMode <> 0 Then
' zu verschiebendes Element "merken"
vTemp = vList(nElement)
' Jetzt die einzelne Elemente verschieben
For i = nElement + nMode To nElement + nMove Step nMode
vList(i - nMode) = vList(i)
Next i
' Element an die gewünschte Position setzen
vList(nElement + nMove) = vTemp
End If
End Function
Danke schonmal
Public Function MoveInList(vList As Variant, _
ByVal nElement As Long, _
ByVal nMove As Long)
Dim i As Long
Dim vTemp As Variant
Dim nSize As Long
Dim nMode As Integer
' Dimensionsgröße
nSize = UBound(vList)
' Plausibilitätsprüfungen
If nElement + nMove < 0 Then
nMove = nMove - (nMove + nElement)
End If
If nElement + nMove > nSize Then
nMove = nSize - nElement
End If
' Mode: nach hinten oder nach vorne verschieben?
' (Vorzeichen ermitteln)
nMode = Sgn(nMove)
' Gültiger Wert?
If nMode <> 0 Then
' zu verschiebendes Element "merken"
vTemp = vList(nElement)
' Jetzt die einzelne Elemente verschieben
For i = nElement + nMode To nElement + nMove Step nMode
vList(i - nMode) = vList(i)
Next i
' Element an die gewünschte Position setzen
vList(nElement + nMove) = vTemp
End If
End Function