Szybkie szukanie
Słowo kluczowe:
niedziela, 05 luty 2012
Start arrow Tips & Tricks arrow Jak zaimplementować uniwersalną maskę liczbową?
Jak zaimplementować uniwersalną maskę liczbową? Drukuj E-mail
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 ;-)

Komentarze
Dodane przez CyberHead w dniu - 2008-07-22 14:46:07
W?aśnie tego szuka?em....dzi?ki Wielkie, pozdro :grin

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!

Następny >

Menu główne
Start
Teoria
VB.NET
Api
Tips & Tricks
Warsztat
VBMagazine
Pliki
Forum
Literatura
Ankiety
Linki
Szukaj
Wyślij program
Napisz do nas
Redakcja
Logowanie
Login

Hasło

Zapamiętaj mnie
Nie pamiętasz hasła?
Nie masz konta? Załóż je sobie
Gościmy
Aktualnie jest 52 gości online
Statystyka
Użytkownicy: 11344
Newsy: 237
Odnośniki: 48
Odwiedzających: 4318529
Mambo is Free Software released under the GNU/GPL License.