Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Почему сравнение работает не правильно?


Автор: Xeim 5.12.2008, 20:38
Для работы программы достаточно создать на форме labelы с именами p, pFake, Mes.
Код

Dim Mask As String
Private Sub Form_Load()
    Mask = "#"
    Password = "123"
    p.Caption = ""
    pFake.Caption = ""
    Mes.Caption = "Введите пароль {" + Password + "}"
End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
    If (KeyAscii = 13) Then 'Enter
        temp = p.Caption
        If (temp = Password) Then
                Mes.Caption = "Succes"
        Else
                Mes.Caption = "Failed"
        End If
    Else
        p.Caption = p.Caption + Chr(KeyAscii)
        pFake.Caption = pFake.Caption + Mask
        'MsgBox KeyAscii
    End If
End Sub


Почему когда я ввожу "123" и нажимаю Enter выводится сообщение "Failed". А если я оставлю поле пустым, то "Succes". Ничего не понимаю!

Автор: Akina 5.12.2008, 20:54
Поставьте точку прерывания в начале процедуры и СМОТРИТЕ, ЧТО ВЫ ТУТ НАПРОГРАММИРОВАЛИ!

Автор: Xeim 5.12.2008, 21:18
А в какой строке ставить и на что обратить внимание?

Чувствую код очень плох, но не знаю где я не так напрограммировал...

Автор: Akina 5.12.2008, 23:31
Цитата(Xeim @  5.12.2008,  22:18 Найти цитируемый пост)
в какой строке ставить 

13

Цитата(Xeim @  5.12.2008,  22:18 Найти цитируемый пост)
на что обратить внимание

на значения всех переменных и их изменение операторами.

Добавлено через 58 секунд
Но вообще писАть программы начинают с размещения в первой строке модуля оператора Option Explicit

Автор: Xeim 5.12.2008, 23:47
Akina, спасибо.
Основная ошибка была в том, что Password не объявлен.
Буду впредь писать Option Explicit в начале. Я не знал, что это надо писать для отлова ошибок. Хотя я не знаю для чего на самом деле такая строка.

Автор: Akina 7.12.2008, 21:52
Цитата(Xeim @  6.12.2008,  00:47 Найти цитируемый пост)
я не знаю для чего на самом деле такая строка.

Наберите ее в первой строке модуля. Поставьте курсор во второе слово. Нажмите F1. Читайте до полного понимания.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)