Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как проверить TextBox 
:(
    Опции темы
korob2001
Дата 29.10.2004, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Привет!

Перейду сразу к проблеме.

Допустим есть текстовое поле txtName, кнопка cmdAdd и листбокс lstUsers. В текстовом поле юзер должен ввести своё имя.

При событии Change, в поле нужно сделать проверку что вводится имя состоящее не менее чем из 4 сиволов. При событии Click кнопки cmdAdd нужно проверить что имя состоит из латинского или русского алфавита ( но не обоих сразу ). Я могу сделать только проверку на ввод нескольких символов. Вот так:
Код

Private Sub txtName_Change()
           If Len( txtName.Text ) > 3 And Not IsNumeric( txtName.Text ) Then
              ' Разблокировать кнопку "Довавить"
              cmdAdd.Enabled = True
           Else
              ' Заблокировать кнопку "Добавить"
              cmdAdd.Enabled = False
           End If
End Sub

Private Sub cmdAdd_Click()
           ' Вот тут нужна проверка
           If ......... Then
              lstUsers.AddItem CStr( txtName.Text )
           Else
              MsgBox "Вы должны указать имя либо русскими, либо латинскими буквами"
              End Sub
           End If
End Sub

Как вы наверное поняли такой проверки не достаточно, для достижения цели.

В VB 6.0 есть регулярные выражения или что-нибудь подобное?

Это сообщение отредактировал(а) korob2001 - 29.10.2004, 22:52


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
cardinal
Дата 30.10.2004, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Может тебе это надо:
http://forum.vingrad.ru/index.php?showtopic=27659


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
-Mikle-
Дата 30.10.2004, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



вот быстренько накатал ф-ию проверки на корректность логина:
Код
Private Sub Command1_Click()
  If IsUserName(Text1.Text) Then
     MsgBox "Все правильно!", vbInformation
  Else
     MsgBox "Не правильно введено имя пользователя.", vbInformation
  End If
End Sub

Private Function IsUserName(Str As String) As Boolean
  Dim Lang As Long
  Dim lng&, i&
  Dim ch As String * 1
 
  IsUserName = False
  If Len(Str) = 0 Then Exit Function
 
  Lang = GetCharLang(Mid$(Str, 1, 1))
  If Lang = 0 Then Exit Function
 
  For i = 1 To Len(Str)
     lng = GetCharLang(Mid$(Str, i, 1))
     If lng > 0 Then
        If lng <> Lang Then Exit Function
     End If
  Next
  IsUserName = True
End Function

Private Function GetCharLang(ByVal ch As String) As Long
  ch = UCase(ch)
  If ch >= "A" And ch <= "Z" Then
     GetCharLang = 1 'латинский
  ElseIf ch >= "А" And ch <= "Я" Then
     GetCharLang = 2 'русский
  Else
     GetCharLang = 0 'не буква
  End If
End Function


вроде работает как надо...


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
korob2001
Дата 1.11.2004, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Большое спасибо.
Меня интересует ещё вот это:
Код

Dim lng&, i&

Что означает символ '&'?

Это сообщение отредактировал(а) korob2001 - 1.11.2004, 15:16


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
cardinal
Дата 1.11.2004, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



MSDN:
Цитата
Long Data Type

Long (long integer) variables are stored as signed 32-bit (4-byte) numbers ranging in value from -2,147,483,648 to 2,147,483,647. Thetype-declaration character for Long is the ampersand (&).


Соовтетственно есть и другие крючки... :)


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
-Mikle-
Дата 1.11.2004, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



Код
Dim lng&, i&

равносильно записи
Код
Dim lng as long, i as long


Вот некоторые обозначения:
& - As Long
# - As Double
! - As Single
$ - As String
@ - As Currency
% - As Integer


то есть Dim tmp$ эквивалентно Dim tmp as String


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Mephisto
Дата 1.11.2004, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



Цитата
Вот некоторые обозначения:
& - As Long
# - As Double
! - As Single
$ - As String
@ - As Currency
% - As Integer

Только такие приколы не работают, когда определяешь структуры!
PM   Вверх
korob2001
Дата 2.11.2004, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Большое спасибо. Я даже не знал о таком способе указания типа.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
cardinal
Дата 2.11.2004, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Я им лично никогда не пользуюсь...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
-Mikle-
Дата 2.11.2004, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



я тоже не пользуюсь, только иногда, когда лень лишнюю букву нажать :)
Добавлено @ 15:24
Цитата(Mephisto @ 1.11.2004, 22:23)

Только такие приколы не работают, когда определяешь структуры!

Естественно... Это же часть старого Барсика...


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
korob2001
Дата 2.11.2004, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Цитата

Я им лично никогда не пользуюсь...

Да я тоже наверное не буду таким способом пользоваться. Мне всеже больше нравится более длинный способ с As, но более понятный. Хотя знать это необходимо, для работы с чужим кодом.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0526 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.