Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Проверка вводимых данных


Автор: Алкоголик 14.3.2009, 21:29
Здраствуйте. 
Как организовать проверку вводимых данных? т.е. например в консольном режиме мне нужно что бы вводились только маленькие англиские буквы и не более 5 символов.
А в приложении с формой в textbox вводились только символы 0123456789ABCDEF.
Заранее спасибо.

Автор: Avalon12x 14.3.2009, 21:47

Цитата(Алкоголик @  14.3.2009,  21:29 Найти цитируемый пост)
А в приложении с формой в textbox вводились только символы 0123456789ABCDEF.


Можно через обработку события KeyPress
Код

Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 8
    If Len(st) = 0 Then Exit Sub
    st = Mid(st, 1, Len(st) - 1)
Case 8, 48 To 57, 65 To 71

Case Else
    KeyAscii = 0
End Select
End Sub


Правда придется еще предотвратить вставку в TextBox через Ctrl+V , Shift+Insert, Copy/Paste

Автор: TEH3OP 7.4.2009, 12:49
Цитата(Алкоголик @  14.3.2009,  21:29 Найти цитируемый пост)
А в приложении с формой в textbox вводились только символы 0123456789ABCDEF

Я люблю ненавязчивую проверку, поэтому делаю так:
Код

Private Function CheckRange(ByVal theText As String, ByVal theRange As String) As Boolean
    Dim k As Long
    Dim theReturn As Boolean
    
    theReturn = True
    
    For k = 1 To Len(theText)
        If InStr(1, theRange, Mid$(theText, k, 1&)) = 0 Then
            theReturn = False
            Exit For
        End If
    Next
    
    CheckRange = theReturn
End Function


Private Sub ctlBNOK_Click()
if not CheckRange(ctlTEXT_SMTH.text, "0123456789ABCDEF") then
    MsgBox "Something wrong!"
   Exit Sub
end if
' Делаею что надо.
End Sub



Автор: BorisVorontsov 10.4.2009, 09:41
Цитата(Алкоголик @  14.3.2009,  21:29 Найти цитируемый пост)
т.е. например в консольном режиме


А это что еще за режим?

Цитата(Алкоголик @  14.3.2009,  21:29 Найти цитируемый пост)
А в приложении с формой в textbox вводились только символы 0123456789ABCDEF.


Может, тебе подойдет MaskEdBox? А так, сабклассинг с последующей обработкой WM_KEYDOWN и WM_RBUTTONDOWN/UP

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)