Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Непонятная, логикой срабатывание кокретного условия / 6 сообщений из 6, страница 1 из 1
16.10.2015, 13:59
    #39078626
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная, логикой срабатывание кокретного условия
Я создал пример. Прилагаю его код.
На форме расположил два TextBox и один Label
Далее запускаю форму и заношу в текстовые поля 1 и 30

Итого у меня 1 меньше 30 и условие прописанное в коде по закраски фона в красный цвет, сработать не должно!
Однако стоит мне написать в TextBoxDya1 = 4 или 5, 6, 7, 8 идаже 9 как срабатывается условие по окраске фона!?
Как? Ведь ни 4 ни 5, ни 6 ... 9 не больше 30.
Почему же он закрашивает их?

Код: vbnet
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.
30.
31.
32.
33.
34.
35.
36.
Option Explicit
Dim Rezultat As Long

Private Sub TextBoxDya1_Change()
    Raschet
End Sub
Private Sub TextBoxDya2_Change()
    Raschet
End Sub
Function Raschet()

'For y = 1 To 12 ' Проставляем дни недели из массива в месяце.
    'If CInt(iArr(y)) <> 0 Then ' Массив содержащий номера тех месяцев что используются в МП
        If Me.TextBoxDya1.Value > Me.TextBoxDya2.Value Or Me.TextBoxDya1.Value = 0 Or Me.TextBoxDya2.Value = 0 Then
            Me.TextBoxDya1.BackColor = RGB(255, 83, 73) ' красный
            Me.TextBoxDya2.BackColor = RGB(255, 83, 73) ' красный
        ElseIf Me.TextBoxDya1.Value = "" Or Me.TextBoxDya2.Value = "" Then
            Me.TextBoxDya1.BackColor = RGB(255, 83, 73) ' красный
            Me.TextBoxDya2.BackColor = RGB(255, 83, 73) ' красный
        Else
            Me.TextBoxDya1.BackColor = RGB(255, 255, 255) ' Белый
            Me.TextBoxDya2.BackColor = RGB(255, 255, 255) ' Белый
            Rezultat = Me.TextBoxDya2.Value - Me.TextBoxDya1.Value
            Me.Label1.Caption = Rezultat
        End If
    'End If
'Next y
End Function
 

Private Sub UserForm_Initialize()

    Me.TextBoxDya1.Value = 1
    Me.TextBoxDya2.Value = 30
    
End Sub
...
Рейтинг: 0 / 0
16.10.2015, 14:45
    #39078697
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная, логикой срабатывание кокретного условия
lopuxiКак? Ведь ни 4 ни 5, ни 6 ... 9 не больше 30.
А ты полюбопытствуй, какой тип данных имеет TextBox.Value.
...
Рейтинг: 0 / 0
16.10.2015, 15:05
    #39078716
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная, логикой срабатывание кокретного условия
AkinalopuxiКак? Ведь ни 4 ни 5, ни 6 ... 9 не больше 30.
А ты полюбопытствуй, какой тип данных имеет TextBox.Value.

Я заменил на переменную. Присвоил ей тип long и все заработало.
А вот какого типа value я что-то не понял...

Но все равно спасибо, помогли разобраться.
...
Рейтинг: 0 / 0
16.10.2015, 15:14
    #39078720
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная, логикой срабатывание кокретного условия
lopuxiкакого типа value я что-то не понял...
Поставь точку прерывания и посмотри в Locals Window.

lopuxiзаменил на переменную. Присвоил ей тип long и все заработало.
Хватило бы и тривиальной функции Val() или там CLng().
...
Рейтинг: 0 / 0
16.10.2015, 16:39
    #39078771
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная, логикой срабатывание кокретного условия
Добавить 2 символа :)
Код: vbnet
1.
If -Me.TextBoxDya1.Value < -Me.TextBoxDya2.Value ...
...
Рейтинг: 0 / 0
16.10.2015, 19:26
    #39078864
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятная, логикой срабатывание кокретного условия
Неявные преобразования типов ЗЛО!
lopuxi, никогда не рассчитывай на них, всегда выполняй явные преобразования.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Непонятная, логикой срабатывание кокретного условия / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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