powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Непонятная, логикой срабатывание кокретного условия
6 сообщений из 6, страница 1 из 1
Непонятная, логикой срабатывание кокретного условия
    #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
Непонятная, логикой срабатывание кокретного условия
    #39078697
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lopuxiКак? Ведь ни 4 ни 5, ни 6 ... 9 не больше 30.
А ты полюбопытствуй, какой тип данных имеет TextBox.Value.
...
Рейтинг: 0 / 0
Непонятная, логикой срабатывание кокретного условия
    #39078716
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinalopuxiКак? Ведь ни 4 ни 5, ни 6 ... 9 не больше 30.
А ты полюбопытствуй, какой тип данных имеет TextBox.Value.

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

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

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


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