Страница: 1 |
Страница: 1 |
Вопрос: К вопросу про "Basic в Basic'е"
Добавлено: 24.03.08 22:41
Автор вопроса: Winand | Web-сайт:
В предыдущей серии=) использовалась функция EbExecuteLine
В связи с тем, что название её мне не очень нравилось, я поискал другие методы ( = совершенно случайно наткнулся)
Microsoft Script Control
http://support.microsoft.com/kb/184740
Добавляем его в референсах. Имеем - выполнение многострокового кода на VBScript, JavaScript.
s.Language = "VBScript"
Debug.Print s.Eval("2^3+(8-3)")
s.Language = "VBScript" ' Set script language (VBScript is the default)
s.AddCode _
"Function ReturnRandom()" & vbNewLine & _
"Randomize" & vbNewLine & _
"ReturnRandom = Rnd" & vbNewLine & _
"End Function"
Debug.Print s.Eval("ReturnRandom")
Только мне не понятно, что такое AllowUI
Также не выполняется код типа .Modules(GlobalModule).Hello "Jane Doe", несмотря на то, что Hello существует (должно бы) и этот код с микрософтдотком
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #1
Добавлено: 24.03.08 22:47
хаха офигенно))
Я перечитал ту тему и увидел там в конце:
Но это не важно. Всё равно последние две строчки вопроса не теряют смысла
Номер ответа: 2
Автор ответа:
J. Smith
ICQ: ненавижу
Вопросов: 40
Ответов: 477
Web-сайт:
Профиль | | #2
Добавлено: 04.04.08 16:07
ScriptControl-это чудо если незамечать заморочек. Ктонибудь понял почему пример с EbExecuteLine переставал работать в откомпилированном варианте.
Нехочу ломать голову если её уже сломал другой.
Номер ответа: 3
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #3
Добавлено: 05.04.08 07:41
Элементарно, она может работать только в отладчике и не предназначена для работы в выполняемом файле.
Номер ответа: 4
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #4
Добавлено: 05.04.08 12:26
Лучше бы рассказали почему после добавления функции Hello, её нельзя вызвать .Modules(GlobalModule).Hello
Или на vb это в принципе невозможно?
Номер ответа: 5
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #5
Добавлено: 07.04.08 09:20
А что сие собсвенно за конструкция то:
Почему она должна или не должна выполняться?
Номер ответа: 6
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #6
Добавлено: 07.04.08 19:39
Viper, это на сайте майкрософт
With ScriptControl1
' Set script language (VBScript is the default).
.Language = "VBScript"
' Set UI interaction (TRUE is the default).
.AllowUI = True
' Copy the script to the control.
.AddCode Text1.Text
' Demonstrate the Eval method.
Debug.Print .Eval("AddTwo(5,7)"
' Demonstrate the Run method both with and without return values.
.Run "Hello", "Jane Doe"
Debug.Print .Run("Hello", "James Smith"
.Run "AddTwo", 4, 6
Debug.Print .Run("AddTwo", 7, 8)
' Demonstrate the ExecuteStatement method.
.ExecuteStatement "Hello ""Sue Smith"""
.ExecuteStatement "AddTwo 9,18"
.ExecuteStatement "MsgBox CStr(AddTwo(3,8))"
.Modules(GlobalModule).Hello "Jane Doe"
Dim oMod As Object
Set oMod = .Modules(GlobalModule)
Debug.Print oMod.AddTwo 12, 24
Set oMod = Nothing
End With
End Sub
Номер ответа: 7
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #7
Добавлено: 07.04.08 19:41
text1 содержит
Sub Hello(YourName)
MsgBox "Hello " & YourName
End Sub
Function AddTwo(X1, X2)
AddTwo = X1 + X2
End Function