Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Код не хочет работать... Добавлено: 10.10.04 01:23  

Автор вопроса:  Calhoon | Web-сайт: 4elovekssn.blog.ru | ICQ: 789764 
Код в режиме отладке работает, а exe - вылетает или выдает ошибку. Почему, не пойму. Установил, что косяк на первой строке:

If intFoc < 0 Or intFoc > 2 Then
    intFoc = 1
End If

intFoc - это TextBox, значение которого 0, 1 или 2 от случая. Почему косяк? Раньше прога работала нормально, а теперь - ошибка в dll vbVirtMachine...

vb переставлять я уж пробовал и dll заменял на другой, старый, из архивов, рабочий раньше...

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #1
Добавлено: 10.10.04 01:39
А ты пробовал там разные CInt или Val ставить?
Вдруг поможет?
Хотя раз раньше работала - придётся тебе ось переставлять.
Попробуй кинуть мне свою прогу (если не больше 200) на neco777@rambler.ru - пойдёт у меня или нет?

Ответить

Номер ответа: 2
Автор ответа:
 Calhoon



ICQ: 789764 

Вопросов: 90
Ответов: 230
 Web-сайт: 4elovekssn.blog.ru
 Профиль | | #2
Добавлено: 10.10.04 01:43
А ты пробовал там разные CInt или Val ставить?

Пробовал. Нифига.

На другой системе (XPюшу поставил на др. винте) тоже exe не пашет, vb еще не поставил...

Ответить

Номер ответа: 3
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #3
Добавлено: 10.10.04 13:04
У меня срабатывает, ставлю 5, изменяет на 1, ставлю -1 изменяет на 1... Все замечательно...

Ответить

Номер ответа: 4
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #4 Добавлено: 10.10.04 16:29
If intFoc < 0 Or intFoc > 2 Then
    intFoc = 1
End If


Не люблю я такой стиль кодирования, ох как не люблю :)) Если intFoc - действительно TextBox (а не считанное оттуда значение), то правильнее писАть так:

If Val(intFoc.Text) < 0 Or Val(intFoc.Text) > 2 Then
    intFoc.Text = "1"
End If[/CODE]

Уважьте бэйсик: дайте ему строковую величину для строкового свойства! И аккуратнее с "дефолтовыми" свойствами; лучше вообще от них отвыкать (в VB.NET, к примеру, этот номер вообще не пройдёт, насколько я знаю).

А ещё правильнее - вот так:
[CODE]intFocValue = Val(intFoc.Text)
If intFocValue < 0 Or intFocValue > 2 Then
    intFoc.Text = "1"
End If


- чтобы не было повторного обращения к свойству. Это не "криминально", но, например, при выполнении этого кода в цикле (и т.п.) это может оказаться критичным в плане быстродействия.

Ответить

Номер ответа: 5
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #5 Добавлено: 10.10.04 16:30
Павел, когда ты добьёшь подсветку кода в форуме?!

Ответить

Номер ответа: 6
Автор ответа:
 Alexey333



ICQ: 127708322 

Вопросов: 4
Ответов: 29
 Профиль | | #6 Добавлено: 10.10.04 22:04
У меня тоже работает.
Видимо у тебя стоит запрет на использование необъявленных переменных. А ты их как раз забыл объявить.

Ответить

Номер ответа: 7
Автор ответа:
 Calhoon



ICQ: 789764 

Вопросов: 90
Ответов: 230
 Web-сайт: 4elovekssn.blog.ru
 Профиль | | #7
Добавлено: 17.10.04 01:32
Все перечисленное пробовал - нифига не помогает... Самое интересное - то, что из-под Basic'a пашет, а в exe - не хотит.....

Ответить

Номер ответа: 8
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #8
Добавлено: 17.10.04 02:24
а, ну я только под IDE и пробовал... завтра надо будет в откомпилированном варианте попробовать...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам