hallo,
ich habe ein problem und komme nicht wirklich weiter.
mit unterem code ist es möglich, zahlen in zweigruppen einzugeben von rechts nach links,
soll heißen nach folgendem format "klijghefcdab"
wobei a die erste eingabestelle für die zahl 1 ist, b die zweite, c die dritte usw.
soweit klappt alles gut, nur ich möchte, das ich die zahlen auch in der textbox mit BACKSPACE korrigeren kann, also immer eine stelle zurückspringt und genau das bekomme ích nicht hin
programmiere leider auch noch mit VB5!
z.b. habe ich eingegeben "6544332211" sehe das die 6 falsch ist, drücke backspace und bin dann auf der position 6 und gebe korrigierend 5 ein!
hoffe habe das nicht zu kompliziert erklärt!
gruß
thomas
'eingabe von zahlen nach formatierung
'
'
' eingabeformat = "klijghefcdab"
' a=erste zahl, b=zweiter zahl, c=dritte zahl
'
'
'controls textfeld1, textfeld2
Dim eingabeformat As String
Dim zahl1 As String
Dim wert As String
Private Sub Form_Load()
'nach diesem eingabeschema soll formatiert werden...a=erste zahl, b=zweiter
' zahl, c=dritte zahl
eingabeformat = "klijghefcdab"
'begrenze eingabefeld auf 12 stellen
Text1.MaxLength = 12
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim Erlaubt$, aa$
'länge der aktuellen eingabe
lang = Len(Text1.Text)
'nur zahlen und backspace zulassen
Erlaubt = "0123456789" & Chr$(8) & Chr$(13)
aa = Chr$(KeyAscii)
If InStr(1, Erlaubt, aa) = 0 Then
KeyAscii = 0
Exit Sub
Else
End If
'wenn keine eingabe, setze string eingabeformat wieder zurück
If lang = 0 Then eingabeformat = "klijghefcdab": Text2.Text = ""
'formatiere eingabe und gebe formatierung im textfeld2 aus...
If lang = 0 Then eingabeformat = StringReplace(eingabeformat, "a", Chr$( _
KeyAscii)): Text2.Text = Chr$(KeyAscii) + " "
If lang = 1 Then eingabeformat = StringReplace(eingabeformat, "b", Chr$( _
KeyAscii)): Text2.Text = Right(eingabeformat, 2)
If lang = 2 Then eingabeformat = StringReplace(eingabeformat, "c", Chr$( _
KeyAscii)): Text2.Text = Chr$(KeyAscii) + " " + Right(eingabeformat, 2)
If lang = 3 Then eingabeformat = StringReplace(eingabeformat, "d", Chr$( _
KeyAscii)): Text2.Text = Right(eingabeformat, 4)
If lang = 4 Then eingabeformat = StringReplace(eingabeformat, "e", Chr$( _
KeyAscii)): Text2.Text = Chr$(KeyAscii) + " " + Right(eingabeformat, 4)
If lang = 5 Then eingabeformat = StringReplace(eingabeformat, "f", Chr$( _
KeyAscii)): Text2.Text = Right(eingabeformat, 6)
If lang = 6 Then eingabeformat = StringReplace(eingabeformat, "g", Chr$( _
KeyAscii)): Text2.Text = Chr$(KeyAscii) + " " + Right(eingabeformat, 6)
If lang = 7 Then eingabeformat = StringReplace(eingabeformat, "h", Chr$( _
KeyAscii)): Text2.Text = Right(eingabeformat, 8)
If lang = 8 Then eingabeformat = StringReplace(eingabeformat, "i", Chr$( _
KeyAscii)): Text2.Text = Chr$(KeyAscii) + " " + Right(eingabeformat, 8)
If lang = 9 Then eingabeformat = StringReplace(eingabeformat, "j", Chr$( _
KeyAscii)): Text2.Text = Right(eingabeformat, 10)
If lang = 10 Then eingabeformat = StringReplace(eingabeformat, "k", Chr$( _
KeyAscii)): Text2.Text = Chr$(KeyAscii) + " " + Right(eingabeformat, 10)
If lang = 11 Then eingabeformat = StringReplace(eingabeformat, "l", Chr$( _
KeyAscii)): Text2.Text = Right(eingabeformat, 12)
End Sub
Public Function StringReplace(sText As String, _
sLookFor As String, sReplaceWith As String) As String
Dim sNew As String
Dim i As Integer
For i = 1 To Len(sText)
If Mid$(sText, i, Len(sLookFor)) = sLookFor Then
sNew = sNew & sReplaceWith
i = i - 1 + Len(sLookFor)
Else
sNew = sNew & Mid$(sText, i, 1)
End If
Next
StringReplace = sNew
End Function |