|
Jak zaimplementować uniwersalną maskę liczbową? |
|
|
|
Napisał Bartek
|
|
niedziela, 24 wrzesień 2006 |
W celu ulatwienia zycia innym uzytkownikom VB chce sie podzielic moim pomyslem implementacji uniwersalnej maski liczbowej. Idealnie działa dla kodów pocztowych, numerów tel, numerów kierunkowych ...itp.
1. Zakładamy posiadanie na formie Textboxa , np. text1, zatem : -> definiujemy (najlepiej globalna) zmienna "maska" typu String, oraz przypisujemy jej wartosc np. maska="__-___" -> na początek ustawiamy zdarzenia key_up i got_focus na wywołanie funkcji : mask text1,maska -> umieszczamy w zrodle project'u kod :
################### 'przyciecie wejscia do samych liczb (pozostale znaki, w tym znaki specjalne pozostałe po masce nas nie interesuja) Function sameliczby(wj As String) As String Dim d As Integer d = Len(wj) For i = 1 To d If IsNumeric(Mid(wj, i, 1)) Then sameliczby = sameliczby & Mid(wj, i, 1) End If Next i End Function
Function mask(wejscie As TextBox, msk As String) Dim dlw As Integer Dim dlm As Integer Dim st As Integer Dim wyjscie As String Dim j As Integer dlw = Len(sameliczby(wejscie.Text)) dlm = Len(msk)
j = 0
'tutaj funkcja wlasciwego ulozenia wejscia/wyjscia! For i = 1 To dlm If Mid(msk, i, 1) = "_" Then j = j + 1 If dlw >= j Then wyjscie = wyjscie & Mid(sameliczby(wejscie.Text), j, 1) st = i Else wyjscie = wyjscie & Mid(msk, i, 1) End If
Else wyjscie = wyjscie & Mid(msk, i, 1)
End If
Next 'koniec funkcji
wejscie.Text = wyjscie wejscie.SelStart = st End Function
######## Inne przykłady masek : maska="(_-__) __-___-___ w. ___" maska="_-___-___-___" maska="p:____"
Maske mozemy dowolnie modyfikowac - wstawiajac znaki/litery (z dodatkowymi liczbami nie sprawdzalem), przy czym wstawienie podkreslenia dolnego "_" wymusza na uzytkowniku wpisanie liczby. UWAGA: w polu opisanym maska, ilosc znakow nie moze przekroczyc dlugosci maski ;-)
|
Dodane przez CyberHead w dniu - 2008-07-22 14:46:07 W?aśnie tego szuka?em....dzi?ki Wielkie, pozdro |
Aby dodać komentarz zaloguj się. Jeśli nie masz konta, załóż je sobie. Tylko zarejestrowani użytkownicy mogą pisać komentarze. Powered by AkoComment 2.0! |