Переменная обнуляется, когда в коде этого нет

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Vinechka
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 381
Зарегистрирован: 10.05.2005 (Вт) 4:07
Откуда: Москва

Переменная обнуляется, когда в коде этого нет

Сообщение Vinechka » 13.09.2006 (Ср) 10:49

Вот снова я тут пишу :( ... У меня уже такое впечатление, что это уже не проблема в коде, а что-то у меня толи со студией, толи еще с днк. Имеем следующее:
Класс, с евентами и т.д. - все как полагается :)
Другой класс (форма), из которого хотим запользовать первый класс. Вызываем метод первого класса. У меня при этом должно исключение генериться (и оно генерится), которое я перехватываю и в эвенты его.

Эвенты первого класса - ошибки (разные), в них я для пары переменных типа Boolean ставлю значение в True. Тут же в окно дебага вывожу значения из переменных - все ок, все True. Следующей строкой, после вызова метода класса идет проверка этих переменных и соответствующие действия. НО там эти переменные уже False. Я даже пробовал делать Integer и давать ему 1 в эвентах при ошибке. Результат тот же - обнуляется...

Создаю новый проект, в нем простейший класс, для эмуляции такого события более простым и наглядным образом и... там все ок.

Может кто сталкивался с таким и это проблема в студии или еще где, а не в коде? Так как код я проштудировал (поиск в проекте по имени переменных) и НИГДЕ больше они не используются и тем более никаких false им не присваевается.

Может кто-то готов немного помочь - я бы дал проект сам, чтобы человек запустил его у себя, вдруг чего выяснится? Я второй день зависаю, а тема-то элементарная... как казалось.

Проект для VS 2005.
Вложения
LCDetalizer.zip
Вот оно...
(176.64 Кб) Скачиваний: 48
Последний раз редактировалось Vinechka 13.09.2006 (Ср) 11:02, всего редактировалось 1 раз.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 13.09.2006 (Ср) 10:57

Вроде таких глюков не было... Выкладывай код, стоит посмтореть на такое чудо
Весь мир матрица, а мы в нем потоки байтов!

Vinechka
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 381
Зарегистрирован: 10.05.2005 (Вт) 4:07
Откуда: Москва

Сообщение Vinechka » 13.09.2006 (Ср) 11:03

Упс, забыл выложить проект :) Отредактировал пост. Буду благодарен, если вдруг чего понятно станет.

Запустив проект, в номер договора напиши например 456 а пароль 123456. Сработает эвент на неверный пароль, blnAuthError = True

а потом в сабе CheckInfo условие:
Код: Выделить всё
If Not blnAuthError And Not blnParseError Then
    AgreementInfo = mParse.getMainInfo
    AbonentsInfo = AgreementInfo.Abonents
    LoginOK = True
    lblPassError.Text = ""
End If

срабатывает - потому что blnAuthError уже False...

PS: эх, вот бы отлавливать все изменения переменных, и узнавать что их меняет... :roll:

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 13.09.2006 (Ср) 12:04

Бред!!!!


При первом нажатии кнопки "Вперед" указанные переменные приходят к указанному условию в CheckInfo как False, нигде до этого значения на True не меняя. Далее попадаем в AuthError где при выполнении строки:

Код: Выделить всё
blnAuthError = True 'Ошибка аутентификации, ставим в True...


ОБЕ (и blnParseError тоже) переменных становятся True и больше никоим образом не меняются.

Бредятина полная....
Весь мир матрица, а мы в нем потоки байтов!

Vinechka
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 381
Зарегистрирован: 10.05.2005 (Вт) 4:07
Откуда: Москва

Сообщение Vinechka » 13.09.2006 (Ср) 12:32

Ох ё-мое, у меня ж евент генерится после выполнения
AgreementInfo = mParse.getMainInfo
А я, с полной уверенностью что оно уже сгенерилось, проверяю значение переменных :shock: Ну и идиотизм я сотворил :lol: :lol:

Спасибо!

PS: я расставлял брейкпоинты почти на каждом шаге и даже не замечал, что никакого евента до If...Then просто нет! :( Вот если б я поставил брейкпоинты в самом классе, из функции которого происходит RaiseEvent... мне бы уже и не пришлось выкладывать данный продукт моей больной фантазии :lol:


Вернуться в Visual Basic .NET

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

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

    TopList