Текст бокс, буквы и цифры.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Текст бокс, буквы и цифры.

Сообщение Павлуша » 04.11.2005 (Пт) 19:14

Задался я тут непростым вопросом - а можно ли сделать так, чтоб в текст бокс нельзя было вписывать буквы, только цифры?
если такое можно, то подскажите как это сделать самыми примитивными средствами ВБ.
Заранее благодарен!
Пошли все на фиг, я фея! :flower:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.11.2005 (Пт) 19:16

Почему не искал?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 04.11.2005 (Пт) 19:17

Все гениальное просто!
Например, так

Код: Выделить всё
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Chr$(KeyAscii) Like "#" = False Then KeyAscii = 0
End Sub
Последний раз редактировалось Amed 04.11.2005 (Пт) 19:24, всего редактировалось 1 раз.

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 04.11.2005 (Пт) 19:19

Amed
нет слов. спасибо. даже таких комманд не знал... типа chr... думал, что они только в С и в Перл есть...
Пошли все на фиг, я фея! :flower:

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 04.11.2005 (Пт) 19:35

и еще один маленький вопрос:
if условие 1 then событие 1 and событие 2,
где условие 3 :
1)блокировка выполнения следующих событий в кнопке
или
2)удаление формы, на которой находится выполняемый код.
такое можно осуществить? если да - то приложите плиз код.
заранее спасибо.
Последний раз редактировалось Павлуша 04.11.2005 (Пт) 20:49, всего редактировалось 1 раз.
Пошли все на фиг, я фея! :flower:

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 04.11.2005 (Пт) 20:16

А ты не путаешь условие с событием?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 04.11.2005 (Пт) 20:42

BV
я путаю, а ты нет :lol:
спасибо...
Пошли все на фиг, я фея! :flower:

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 04.11.2005 (Пт) 21:32

Кстати, Павлуша есть еще MaskEditControl. Поредактируй его свойство Mask...
Блокировка выполнения следующих событий, это видимо, Exit Sub.
А удаление формы - Unload Me.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 04.11.2005 (Пт) 21:54

ANDLL
нет, не анлоад ми. анлоад это выгруз ее из памяти, а мне надо, чтобы форма, после заполнения текстового поля правильным числом - удалялась.
как в программах, имеющих форму регистрации - зарегался и нет больше ее (эти формы называют нагами, если мне память не изменяет).
Пошли все на фиг, я фея! :flower:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.11.2005 (Пт) 21:59

Нагами называют отличных шестируких юнитов Башен...

Форма никогда не удаляется.
Но перед её загрузкой проверяется, надо ли её показывать.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.11.2005 (Пт) 22:00

А про ES_NUMBER все знают?
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 04.11.2005 (Пт) 22:16

Нет. Но, судя по названию, вещь удобная в таких случаях.
2Павлуша: Если в экзешнике что-то есть, то оно оттуда уже не удаляется. По крайней мере этим же экзешником.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.11.2005 (Пт) 23:14

tyomitch писал(а):А про ES_NUMBER все знают?


ES_NUMBER
Allows only digits to be entered into the edit control. Note that, even with this set, it is still possible to paste non-digits into the edit control.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 04.11.2005 (Пт) 23:34

Короче, ничем не лучше способа амеда. Юзайте MaskEdit!
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 05.11.2005 (Сб) 15:42

Хорошо, Темыч, я не знаком вообще со всякими API-функциями, поэтому юзать ее не буду.
Вот кусок кода, с комментами, надеюсь вы поймете.
Код: Выделить всё
Private Sub Command2_Click()
s = Text1.Text
If Text2.Text = "" Then MsgBox "", 16, ""
' здесь идет предупреждение о том, что не стоит оставлять пустое поле и сразу после нажатия кнопки ОК выдается ошибка 13 (несовпадение типов и выделяется следующий оператор условия.
' текст2 - поле для ввода серийника
If Text2.Text = Len(s) * 12 + (Len(s) *26) Then _   Form3.Command3.Enabled = True
' тут проверяется правильность серийника, если он правильный, то открывается кнопка на другой форме

If Text2.Text = Len(s) * 12 + (Len(s) * 26) Then frmReg.Visible = False: Form1.Show
' тут при правильном серийнике закрывается форма и управление передается на другую форму

If Text2.Text <> Len(s) * 12 + (Len(s) * 26) Then MsgBox "", 16, "" _
Else MsgBox "", 64, ""
' если серийник неправильный, то прога орет благим матом.
End Sub

Private Sub Command3_Click()
frmReg.Visible = False
Form1.Show
' эта кнопка продолжает работу проги без ее регистрации
End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer)
If Chr$(KeyAscii) Like "#" = False Then KeyAscii = False
End Sub

вот надо сделать так, чтобы не выводилось этой поганной 13-ой ошибки и, чтоб при правидьно указанном серийнике прога больше не показывала эту форму регистраци.
Помогите пожалуйста, век буду благодарен! :cry:
Пошли все на фиг, я фея! :flower:

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.11.2005 (Сб) 17:36

M.B. се:
Код: Выделить всё
Private Sub Command2_Click()
Dim s As String
s = Text1.Text
If Text2.Text = "" Then MsgBox "", 16, "": Exit Sub
' здесь идет предупреждение о том, что не стоит оставлять пустое поле и сразу после нажатия кнопки ОК выдается ошибка 13 (несовпадение типов и выделяется следующий оператор условия.
' текст2 - поле для ввода серийника
If Text2.Text = CStr(Len(s) * 12 + (Len(s) * 26)) Then _
Form3.Command3.Enabled = True
' тут проверяется правильность серийника, если он правильный, то открывается кнопка на другой форме

If Text2.Text = CStr(Len(s) * 12 + (Len(s) * 26)) Then frmReg.Visible = False: Form1.Show
' тут при правильном серийнике закрывается форма и управление передается на другую форму

If Text2.Text <> CStr(Len(s) * 12 + (Len(s) * 26)) Then MsgBox "", 16, "" _
Else MsgBox "", 64, ""
' если серийник неправильный, то прога орет благим матом.
End Sub
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 05.11.2005 (Сб) 17:45

ANDLL
Спасибо, Андрей!!! век не забуду!!!

и последний вопрос:
Код: Выделить всё
If Text2.Text = CStr(Len(s) * 12 + (Len(s) * 26)) Then _
Form3.Command3.Enabled = True

вот как раз касается этой кнопки - она никак не хочет делать свой инаблд равным фолсу! ну никак! ни в свойствах кнопки, ни в коде формы - ничего не помогает...что предложите?
Пошли все на фиг, я фея! :flower:

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.11.2005 (Сб) 18:18

Ты вроде-как его к True приравниваешь...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 05.11.2005 (Сб) 18:35

2 Павлуша

Таки имеет смысл почитать хоть это.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 05.11.2005 (Сб) 18:36

ANDLL
приравневую, но на той форме, на которой она стоит, значение равно фолс, но при загрузке, кнопка прекрасно отображается и нажимется.
Пошли все на фиг, я фея! :flower:

Zoomie
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 181
Зарегистрирован: 10.05.2004 (Пн) 10:07
Откуда: СПб

Сообщение Zoomie » 05.11.2005 (Сб) 18:43

Попробуй при загрузке проекта прописать

Код: Выделить всё
Load Form3


Может поможет...

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 05.11.2005 (Сб) 19:00

Zoomie
она грузиться по умолчанию вместе со всем проектом и это все равно не помогает.
Пошли все на фиг, я фея! :flower:

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.11.2005 (Сб) 19:11

Павлуша писал(а):Zoomie
она грузиться по умолчанию вместе со всем проектом и это все равно не помогает.

Кто сказал?

Павлуша писал(а):ANDLL
приравневую, но на той форме, на которой она стоит, значение равно фолс, но при загрузке, кнопка прекрасно отображается и нажимется.

Быть того не может. Попробуй при выполнении проги нажать Ctrl+Break и в окне Immidiate(Ctrl+G) набрать ? Form3.Command3.Enabled .
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 05.11.2005 (Сб) 19:15

ANDLL
пишу:
? form3.command3.enabled
получаю ответ:
False
еду дальше на форму! опа!! вот она кнопка! никаких Enabled.false нет.
кнопка нажимается и работает
Пошли все на фиг, я фея! :flower:

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.11.2005 (Сб) 19:41

Код в студию.
Ты уверен, чтот твоя кнопка именно так называается?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 05.11.2005 (Сб) 19:44

ANDLL
уверен... не считаешь ли ты меня параноиком?
код не дам - там только одна строчка вида:
Код: Выделить всё
Private Sub Form_Load()
Command3.Enabled = False
End Sub

и в свойствах кнопки тоже выставленно - Фолс
Пошли все на фиг, я фея! :flower:

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.11.2005 (Сб) 19:50

2Павлуша:Проблема не в этой строчке. У меня при пустом проекте все прекрасно отключаеться. Давай весь проект, в котором такое поведение. Можешь вырезать все, что считаешь неподлежащим оглашению. Главное, проверь что бы после вырезки всего лишнего, оставалась такое странное поведение.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 05.11.2005 (Сб) 20:03

ANDLL
ты точно хочешь весь проект? он весит 8 метров... я кину тебе его по мылу... если ты не против...
Пошли все на фиг, я фея! :flower:

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.11.2005 (Сб) 20:09

В таком случае тебе придеться ждать до вторника. 8 Мб по Dial-up'у я не подниму. Попробуй открыть одну только форму(Dubl-click на ее файле) и удалить весь код, кроме того,который ты привел. Что будет тогда?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 93

    TopList