Страница: 1 |
Страница: 1 |
Вопрос: Помогите разобраться с ТекстБоксом.
Добавлено: 29.10.06 10:44
Автор вопроса: appolinari
Здравствуйте.
Есть такой вопрос:
Если в программе (VB) я пишу : Text1.Text - 2*(1+3)
То в ТекстБоксе получаю "8".
или
print 2*(1+3) ..."8"
А если пытаюсь вводить в один ТекстБокс пример и получить ответ, типа: Text2.Text=Text1.Text
то во втором ТекстБоксе получаю либо текст своего примера
или
print Text1.Text ... "2*(1+3)"
либо сообщение об ошибке(при попытке конвертировать пример в Int или что то подобное)...
Помогите, плиз...
Ответы
Всего ответов: 15
Номер ответа: 1
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #1
Добавлено: 29.10.06 11:17
то во втором ТекстБоксе получаю либо текст своего примера
Номер ответа: 2
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #2
Добавлено: 29.10.06 11:20
Хотя странно, что в text1 у тебя 8, в текст2= "2*(1+3)"
Может ты что-то не договариваешь?
Потому как у меня и там и там 8(если я правильно тебя понял, то у тебя так):
Text1.Text = 2 * (1 + 3)
Text2.Text = Text1.Text
End Sub
Номер ответа: 3
Автор ответа:
appolinari
Вопросов: 10
Ответов: 30
Профиль | | #3
Добавлено: 29.10.06 11:58
Не совсем так. Вариант :
Text1.Text = 2 * (1 + 3)
я прокрутил для проверки работоспособности такой постановки вопроса...
После чего леплю форму с двумя текстбоксами и кнопкой. В окно первого текстбокса вписываю пример и при нажатии кнопки пытаюсь получить
Private Sub Command1_Click()
Text2.Text = Text1.Text
End Sub
во втором окне ответ.
Номер ответа: 4
Автор ответа:
avdey
ICQ: 219571279
Вопросов: 34
Ответов: 486
Профиль | | #4
Добавлено: 29.10.06 11:59
Аффтар вводит в текстбокс формулу "2*(1+3)" и тип у этой формулы as String, потом через Int он пытается перевести ее в число, но этого делать нельзя, т.к. формулу в число перевести не получится, попробуй переведи "Ля-ля-ля" в число, что получится???
Нужно что-то типа Текстбокс1=Текстбокс1*(Текстбокс2+Текстбокс3)...
Или юзать апи... там функция какая-то есть, в запущенной проге в Текстбоксе пишешь код на ВБ и он выполняется... Если вспомню, выложу.
Номер ответа: 5
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #5
Добавлено: 29.10.06 12:40
Мона ф-цию написать с val и посимвольными рперациями при сильном желании - работать будее!!
Номер ответа: 6
Автор ответа:
appolinari
Вопросов: 10
Ответов: 30
Профиль | | #6
Добавлено: 29.10.06 13:17
Можно, но хотелось как проще, а выйдет - как всегда?
Ведь вариант
text1.text = 2*(1+3)
or
print 2*(1+3)
отрабатывает...
Весь сыр бор разгорелся из за того, что сыну задают кучу примеров на дом. А я в итоге всю эту лабуду проверяю. Так вот хотел облегчить себе жизнь
Номер ответа: 7
Автор ответа:
appolinari
Вопросов: 10
Ответов: 30
Профиль | | #7
Добавлено: 29.10.06 14:16
Я пытался так же обойтись без ТекстБокса.
Сделать к примеру типа:
text1.text = InputBox(...)
Но с тем же результатом.
Номер ответа: 8
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #8
Добавлено: 29.10.06 14:55
Можно складывать сразу при вводе значений - тогда полчится вроде ничего
///
end sub
Номер ответа: 9
Автор ответа:
appolinari
Вопросов: 10
Ответов: 30
Профиль | | #9
Добавлено: 29.10.06 15:05
Интересно. До дома доберусь, попробую. На работе у меня нет VB.
Номер ответа: 10
Автор ответа:
appolinari
Вопросов: 10
Ответов: 30
Профиль | | #10
Добавлено: 29.10.06 15:08
А может можно каким то образом вписывать пример в тело программы, в
Private Sub Command1_Click()
Text2.Text = #################
End Sub
Номер ответа: 11
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #11
Добавлено: 29.10.06 19:20
юзай ScriptControl
Номер ответа: 12
Автор ответа:
appolinari
Вопросов: 10
Ответов: 30
Профиль | | #12
Добавлено: 30.10.06 08:23
Если можно чуть поподровней...
Номер ответа: 13
Автор ответа:
appolinari
Вопросов: 10
Ответов: 30
Профиль | | #13
Добавлено: 31.10.06 07:49
Ну что, ни у кого ни каких идеев нет? Видно придется действительно функцию с переборкой символов строить. Или в VB6 продолжать писать:
Text1.Text = пример...Run...
Номер ответа: 14
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #14
Добавлено: 31.10.06 13:27
Ну вот не понял человек...
Private sc As Object
Private Sub Command1_Click()
Text1 = "2*(1+3)"
Set sc = CreateObject("ScriptControl"
sc.language = "VBScript"
Debug.Print sc.Eval(Text1)
Set sc = Nothing
End Sub
Номер ответа: 15
Автор ответа:
appolinari
Вопросов: 10
Ответов: 30
Профиль | | #15
Добавлено: 31.10.06 20:19
ПРИМНОГОБЛАГОДАРЕН!!!
Скажите пожалуйста, где я могу найти информацию по ScriptControl...