Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Заблокировать commandbutton при делении на ноль / 8 сообщений из 8, страница 1 из 1
13.12.2006, 09:16
    #34195339
Pathologic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заблокировать commandbutton при делении на ноль
Помогите, пжалста ламерку!
Хотел заблокировать кнопку, если не введены значения в поля 1 и 2, но почему то не работает
Вот такая программа

Private Sub CommandButton1_Click()
CommandButton1.Enabled = True
Dim X!
X = Val(TextBox2.Text) / 100
Y = Val(TextBox1.Text) / (X ^ 2)
TextBox3.Text = Y
If TextBox1.Text = 0 Then
CommandButton1.Enabled = False
ElseIf TextBox2.Text = 0 Then
CommandButton1.Enabled = False
Else
CommandButton1.Enabled = True
End If
End Sub


P.S. и еще, если не затруднит, подскажите как в Text3 вывести число с 2-мя цифрами после запятой, а не с 5-ю
Спасибо заранее всем, кто откликнется
...
Рейтинг: 0 / 0
13.12.2006, 09:37
    #34195405
shady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заблокировать commandbutton при делении на ноль
авторХотел заблокировать кнопку, если не введены значения в поля 1 и 2, но почему то не работает
Нужно обрабатывать ввод в событии Change или KeyDown каждого текстбокса
...
Рейтинг: 0 / 0
13.12.2006, 10:09
    #34195506
AndreyMp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заблокировать commandbutton при делении на ноль
Условие типа авторIf TextBox1.Text = 0 Then сработает только когда в TextBox1.Text будет символ 0, проверка на пустоту TextBox1 выглядит примерно так
Код: plaintext
If Len(TextBox1.Text) <>  0  Then ...
...
Рейтинг: 0 / 0
13.12.2006, 13:07
    #34196266
Nikz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заблокировать commandbutton при делении на ноль
На форме:
Command1
Edit1
Edit2
Edit3
В модуле формы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Option Explicit

Private Sub Form_Load()
Command1.Enabled = False
End Sub

Private Sub Text1_Change()
If Val(Text1.Text) =  0  Or Val(Text2.Text) =  0  Then
    Command1.Enabled = False
Else
    Command1.Enabled = True
End If
End Sub

Private Sub Text2_Change()
If Val(Text1.Text) =  0  Or Val(Text2.Text) =  0  Then
    Command1.Enabled = False
Else
    Command1.Enabled = True
End If
End Sub

Private Sub Command1_Click()
Dim X As Double
Dim Y As Double
X = Val(Text1.Text) /  100 
Y = Val(Text2.Text) / (X ^  2 )
Text3.Text = Format(Y, "0.00")
End Sub
...
Рейтинг: 0 / 0
13.12.2006, 15:36
    #34197067
Pathologic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заблокировать commandbutton при делении на ноль
Спасибо, хотя с выполнением задачи при пустых полях проблема не решилась: кнопка Command1 так и не начинает работать после заполнения Text1 иText2, при изначальном Command1.Enabled = False. А при изначальном Command1.Enabled = True, при пустых полях Text1 иText2 - выдает ошибку Run-Time error '6' Overflow. Может дело все в том, что я работаю не на самом барсике, а на Apllication из-под Excel?
Буду очень признателен, если найдете мне решение. Спасибо.
...
Рейтинг: 0 / 0
13.12.2006, 16:39
    #34197335
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заблокировать commandbutton при делении на ноль
Ну, в самом примитивном, неизощренном виде, наверно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Option Explicit

Private Sub TextBox1_Change()
    CommandButton1.Enabled = GetEnableDisable
End Sub

Private Sub TextBox2_Change()
    CommandButton1.Enabled = GetEnableDisable
End Sub

Private Sub UserForm_Initialize()
    CommandButton1.Enabled = False
End Sub

Private Function GetEnableDisable() As Boolean
    GetEnableDisable = IsNumeric(TextBox1.Text) And IsNumeric(TextBox2.Text)
End Function

Насчет "число с 2-мя цифрами после запятой", посмотрите примеры функции Format. Их много.

VladConn
...
Рейтинг: 0 / 0
13.12.2006, 16:45
    #34197358
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заблокировать commandbutton при делении на ноль
Если надо заблокироавть кнопку, если во втором текстовом поле сидит ноль, то функция может быть, например, такой:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Function GetEnableDisable() As Boolean
    Dim blnReturn As Boolean

    blnReturn = IsNumeric(TextBox1.Text) And IsNumeric(TextBox2.Text)

    If blnReturn Then
        blnReturn = CDbl(TextBox2.Text) >  0 #
    End If

    GetEnableDisable = blnReturn
End Function
...
Рейтинг: 0 / 0
14.12.2006, 09:00
    #34198587
Pathologic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заблокировать commandbutton при делении на ноль
Спасибо! Теперь все работает.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Заблокировать commandbutton при делении на ноль / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]