Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Выражение в string

72K
27 марта 2012 года
lolwhat
13 / / 27.03.2012
Подскажите, как посчитать значение выражения в string, и записать его в label.
Имеется текстбокс. Пользователь вводит в него выражение (+-*/), и по кнопочке значение пишется в Label.
Есть ли аналог Eval в VB? Поискал по инету: пишут, что можно подключить к проекту script control, но я начинающий, не могу толком понять, что делать.
Спасибо.
72K
27 марта 2012 года
lolwhat
13 / / 27.03.2012


Спасибо. Если можете, укажите на ошибку в этом коде.

Код:
Option Explicit On
Public Class Form2
    Private Sub Form_Load()
        objScript = CreateObject("MSScriptControl.ScriptControl")
        objScript.Language = "VBScript"
    End Sub
    Private objScript As Object
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim result As Object = objScript.Eval(TextBox1.Text)
        Label1.Text = result
    End Sub
End Class
Пишет при выполнении Dim result As Object = objScript.Eval(TextBox1.Text):
Необработанное исключение типа "System.NullReferenceException" произошло в Microsoft.VisualBasic.dll
Дополнительные сведения: Не задана переменная объекта или переменная блока With.
430
28 марта 2012 года
craftyfox
157 / / 20.02.2000
 
Код:
Set objScript = CreateObject("MSScriptControl.ScriptControl")
72K
28 марта 2012 года
lolwhat
13 / / 27.03.2012
Цитата: craftyfox
 
Код:
Set objScript = CreateObject("MSScriptControl.ScriptControl")


В моей, десятой студии, написано, что операторы Set u Let не поддерживаются.
Я вообще сомневаюсь, что у меня есть скрипт контрол.
Я скачал его, установил, зарегистрировал ocx библиотеку. Дальше я не продвинулся.

430
29 марта 2012 года
craftyfox
157 / / 20.02.2000
угу, я ошибся :)
скрипт крнтрол у тебя есть, т.к. objScript.Language = "VBScript" проходит
попробуй
Dim result As String = objScript.Eval(TextBox1.Text)
72K
29 марта 2012 года
lolwhat
13 / / 27.03.2012
Вообщем я нашел ошибку. Странно, но objScript переменной сама кнопка просто не видела. Т.е на форме он может и был, но кнопка в тупую не находила его. Сначала подумал из-за глупой ошибки - Form_Load должен быть с 2, т.к. работаю со 2 формой. Но нет.
Решилось все тем, что я перенес объявление objScript в клик по кнопке. И, т.к. при каждом клике будет создаваться объект, там же написал удаление.
Если есть более гуманный способ, напишите -_______-
Если кому еще надо:

 
Код:
Public Class Form2
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim result As String
        Dim objScript As Object = CreateObject("MSScriptControl.ScriptControl")
        objScript.Language = "VBScript"
        result = objScript.Eval(TextBox1.Text)
        Label1.Text = result
        Erase objScript
    End Sub
End Class
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог