Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: К вопросу про "Basic в Basic'е" Добавлено: 24.03.08 22:41  

Автор вопроса:  Winand | Web-сайт: winandfx.narod.ru
В предыдущей серии=) использовалась функция EbExecuteLine
В связи с тем, что название её мне не очень нравилось, я поискал другие методы ( = совершенно случайно наткнулся)

Microsoft Script Control
http://support.microsoft.com/kb/184740

Добавляем его в референсах. Имеем - выполнение многострокового кода на VBScript, JavaScript.
Dim s As New ScriptControl
s.Language = "VBScript"
Debug.Print s.Eval("2^3+(8-3)")

Dim s As New ScriptControl
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-сайт: winandfx.narod.ru
 Профиль | | #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
Ктонибудь понял почему пример с EbExecuteLine переставал работать в откомпилированном варианте.

Элементарно, она может работать только в отладчике и не предназначена для работы в выполняемом файле.

Ответить

Номер ответа: 4
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #4
Добавлено: 05.04.08 12:26
Лучше бы рассказали почему после добавления функции Hello, её нельзя вызвать .Modules(GlobalModule).Hello
Или на vb это в принципе невозможно?

Ответить

Номер ответа: 5
Автор ответа:
 Viper



ICQ: 249094859 

Вопросов: 0
Ответов: 310
 Профиль | | #5 Добавлено: 07.04.08 09:20
А что сие собсвенно за конструкция то:
.Modules(GlobalModule).Hello
?
Почему она должна или не должна выполняться?

Ответить

Номер ответа: 6
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #6
Добавлено: 07.04.08 19:39
Viper, это на сайте майкрософт
      Private Sub Command1_Click()
        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-сайт: winandfx.narod.ru
 Профиль | | #7
Добавлено: 07.04.08 19:41
text1 содержит
      Sub Hello(YourName)
        MsgBox "Hello " & YourName
      End Sub

      Function AddTwo(X1, X2)
        AddTwo = X1 + X2
      End Function

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам