Помогите пожалуйста! в этой строке : x = Text1.Text выво

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Вова1987
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 18.04.2013 (Чт) 8:31

Помогите пожалуйста! в этой строке : x = Text1.Text выво

Сообщение Вова1987 » 18.04.2013 (Чт) 8:43

Помогите пожалуйста! в этой строке : x = Text1.Text выводит ошибку "несовпадение типов". подскажите что исправить


Код: Выделить всё
Dim x As Double, a As Single, b As Integer, c As Integer, y As Single, z As Single, msgb As String
Private Sub Command1_Click()
a = 65
b = 5.32
c = 1.01
msg = "Aaaaeoa cia?aiea o!"
If Text1.Text = " " Then
MsgBox msg
Else
x = Text1.Text
y = (Log(Abs(x + b * Sqr(Abs(x)))) / Log(a)) / (2 * a * x - (x / b))
z = (x / y - Sqr(Abs(x * y) ^ (1 / c))) / (Log(Abs(x - b)) / Log(c))
Label7.Caption = y
Label8.Caption = z
End If
End Sub

[Viper] :: Пользуйся тэгом CODE!

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 18.04.2013 (Чт) 11:56

Значит у тебя не число в текстовом поле.

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

Re: Помогите пожалуйста! в этой строке : x = Text1.Text

Сообщение Viper » 18.04.2013 (Чт) 17:49

А в чем смысл объявить b и c с типом Integer, а затем присваивать им действительные числа 5.32 и 1.01, соответственно? Ошибка по идее уже на строках присваивания должна быть.
Весь мир матрица, а мы в нем потоки байтов!

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Помогите пожалуйста! в этой строке : x = Text1.Text

Сообщение ger_kar » 18.04.2013 (Чт) 17:58

Qwertiy писал(а):Значит у тебя не число в текстовом поле.
Вот именно! И скорее всего поле просто пустое. И пустое поле это далеко не 0 :)
Вова1987 писал(а):подскажите что исправить
Поставить условие и делать операцию присвоения только если это число.
Например проверку на пустоту можно сделать так:
Код: Выделить всё
If Len(Text1.Text) Then x = Text1.Text Else x=0

И заметь, это только проверка на пустоту, а кроме неё нужно проверить, что поле содержит именно число, а не нечто.
Поэтому проверку нужно дополнить, а не использовать пример "как есть", так как это просто пример проверки на пустоту :)
Бороться и искать, найти и перепрятать

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 18.04.2013 (Чт) 18:04

ger_kar писал(а):Поэтому проверку нужно дополнить

А можно просто написать Val :)

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Помогите пожалуйста! в этой строке : x = Text1.Text

Сообщение ger_kar » 18.04.2013 (Чт) 18:24

Dim x As Double x = Text1.Text NO VAL :wink:
Бороться и искать, найти и перепрятать

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 18.04.2013 (Чт) 21:44

ger_kar писал(а):Dim x As Double x = Text1.Text NO VAL :wink:

Я не про его код ;)

Вэйл
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 28.04.2013 (Вс) 8:02

Re: Помогите пожалуйста! в этой строке : x = Text1.Text

Сообщение Вэйл » 28.04.2013 (Вс) 13:15

Вначале нужно Text1 что-то присвоить.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 28.04.2013 (Вс) 17:56

Вэйл писал(а):Вначале нужно Text1 что-то присвоить.

Зачем? Это же TextBox.

Вэйл
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 28.04.2013 (Вс) 8:02

Re: Помогите пожалуйста! в этой строке : x = Text1.Text

Сообщение Вэйл » 29.04.2013 (Пн) 8:49

Обычно x=Val(Text1.Text) поскольку Dim x Integer, а в тексте - строковая переменная (символы), как ответил VB6.

caa2000
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 14.05.2009 (Чт) 4:50

Re: Помогите пожалуйста! в этой строке : x = Text1.Text

Сообщение caa2000 » 29.04.2013 (Пн) 9:53

Код: Выделить всё
Dim s As String, x As Double


Private Sub Command1_Click()
s = Text1.Text
x = CDbl(s)
Label1.Caption = x
End Sub


Можно поиграться с
Dim x As Variant
В лбом случае - функция Format,Convert
Имеющий уши, да услышит.. (с) Новый Завет От Матфея святое благовествование

caa2000
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 14.05.2009 (Чт) 4:50

Re: Помогите пожалуйста! в этой строке : x = Text1.Text

Сообщение caa2000 » 29.04.2013 (Пн) 10:20

ЗЫ.
Только надо в Text1.Text проверочку придумать, если введёш string опять ругаться будет - Type missmatch
Имеющий уши, да услышит.. (с) Новый Завет От Матфея святое благовествование


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

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

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

    TopList