Ошибка 13

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
kminas
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 31.10.2005 (Пн) 20:17
Откуда: Ростов-на-Дону

Ошибка 13

Сообщение kminas » 29.01.2008 (Вт) 15:37

Если в программе тип переменной задан Single или Integer, а во время выполнения программы данные, например в TextBox не введены (и не надо вводить), программа определяет тип переменной String и выдает ошибку 13. Можно ли как-то обмануть прогу, не присваивая переменной тип Variant и не прибегая к обработчику ошибок?

Аналогично с плавающей точкой. Хотя эти типы и так называются, но у меня Single и Double определяются, когда число с запятой. Как быть с типом переменных в этом случае. Либо еще лучше, как сделать, чтобы введенные в этом случае точка, превращалась в запятую?
Константин

Gemini
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 390
Зарегистрирован: 24.07.2002 (Ср) 14:15
Откуда: Ozersk

Сообщение Gemini » 29.01.2008 (Вт) 16:28

Если я правильно понял...
Вот(на скорую руку):

Код: Выделить всё
Dim a As Double
Private Sub Command1_Click()
   If Len(Text1.Text) = 0 Then
     a = 0
   Else
    ///Раскомментируй для доп. проверки...
    ' If InStr(1, Text1.Text, ".") > 0 Then
        a = Replace(Text1.Text, ".", ",")
    ' Else
    '    a = Text1.Text
    ' End If
   End If
me.caption=a
End Sub
В нашем деле главное ЛОГИКА.

косил косой косой косой.

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

Сообщение Viper » 29.01.2008 (Вт) 16:43

просто надо корректно преобразовывать в нужный тип, и при необходимости обрабатывать ошибку.
Весь мир матрица, а мы в нем потоки байтов!

sergey-911
Постоялец
Постоялец
 
Сообщения: 545
Зарегистрирован: 17.01.2005 (Пн) 19:10

Сообщение sergey-911 » 29.01.2008 (Вт) 22:44

Нужно воспользоваться сторонними компонентами, вместо всяких проверок.
Например, инфрагристик и тп. Это сократит время на разработку и пользователь не сможет ввести данные, не соответствующие условию.

http://www.infragistics.com
http://www.ciatheco.com/Products/Index.php
http://www.componentone.com
С уважением, Сергей.

kminas
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 31.10.2005 (Пн) 20:17
Откуда: Ростов-на-Дону

Сообщение kminas » 29.01.2008 (Вт) 23:22

Спасибо, буду пробовать.
Константин

kminas
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 31.10.2005 (Пн) 20:17
Откуда: Ростов-на-Дону

Сообщение kminas » 01.02.2008 (Пт) 23:34

Gemini
Спасибо! Из нескольких форумов, лучше всего подошел Ваш с небольшим уточнением.
Константин

Gemini
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 390
Зарегистрирован: 24.07.2002 (Ср) 14:15
Откуда: Ozersk

Сообщение Gemini » 02.02.2008 (Сб) 9:20

kminas
Всегда пожалуйста! :wink:
В нашем деле главное ЛОГИКА.

косил косой косой косой.


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 95

    TopList