Использование сценария управления модулями и процедуры коллекций

Переводы статьи Переводы статьи
Код статьи: 184745 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

В данной статье демонстрируется использование модулей и процедуры свойств Сегмент кода элемента управления сценариев (Майкрософт). Он также демонстрирует, как можно динамически определять количество аргументов и ли процедура является Function или Sub.

Дополнительная информация

Элемент управления сценария Microsoft включает возможности, позволяющие основному приложения для сегмента сценарии в различных модулях. Модуль по умолчанию «Глобальный» присутствует всегда. Разные модули могут содержать процедуры то же имя (то есть, имен процедур имеют области модуля).

Элемент управления сценария Microsoft также включает процедуру свойства, позволяющие ведущее приложение динамически определить, является ли процедура Он ожидает Function или Sub, а также число аргументов. Это позволяет ведущему приложению запрашивать у пользователя правильный номер значения параметров.

Свойство Modules управления сценарием является объектом, содержащим Коллекция объектов модуля. Он имеет следующие свойства и методы:
  • Количество: Количество модулей.
  • Item(x): Возвращает объект модуля.
  • Добавьте имя: Добавляет новый модуль с заданным именем.
Модуль объекта имеет следующие свойства и методы:
  • Имя: Имя модуля.
  • Процедуры: Процедур объект.
  • Код AddCode: добавляет код в модуль.
  • Имя выполнения, аргументы: запускает процедуру с именем.
Объект процедуры содержит коллекцию объектов процедуры. Он имеет следующие свойства и методы:
  • Количество: Количество процедур в модуле.
  • Item(x): Возвращает объект процедуры.
Объект процедура имеет следующие свойства и методы:
  • Имя: Имя процедуры.
  • HasReturnValue: Указывает, является ли процедура Sub или Function.
  • NumArgs: Количество аргументов, требует процедуры.
Примечание: Не все свойства и методы объектов в списке не задан, только что соответствующими данной статьи.

В следующем примере приводится интерактивных программ, иллюстрирующее, как Чтобы использовать эти свойства и методы:

ВНИМАНИЕ: Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации без гарантии или подразумеваемых включая, но не ограничиваясь Чтобы подразумеваемые гарантии товарности или пригодности для в определенных целях. В данной статье предполагается, что вы знакомы с Программирование рассчитаны язык и средства, используемые для создания и Отладка процедур.

Пример

  1. В Visual Basic создайте новый проект (по умолчанию создается форма Form1).
  2. В меню Проект выберите команду компоненты, а затем выберите «Microsoft Сценарий управления 1.0 "флажок.
  3. Добавьте элемент управления сценария (ScriptControl1), текстовое поле (Текст1), 3 команды кнопки (Command1, команда2, Command3) и два списка. (List1 файла List2.txt) в форму Form1. Задайте для свойства многострочного текстового поля, чтобы ЗНАЧЕНИЕ TRUE. Измените размер текстового поля, чтобы вместить 5 строк из 30 символов.
  4. Добавьте следующий код в форму Form1:
          Private Sub Command1_Click()
            ScriptControl1.Modules.Add Text1.Text
            Form_Activate
          End Sub
    
          Private Sub Command2_Click()
            ScriptControl1.Modules(List1).AddCode Text1.Text
            List1_Click
          End Sub
    
          Private Sub Command3_Click()
          Dim RetVal As Variant, m As Variant
            Set m = ScriptControl1.Modules(List1.Text)
            With m.Procedures(List2.Text)
              Select Case .NumArgs
                Case 0
                  RetVal = m.Run(List2.Text)
                Case 1
                  RetVal = m.Run(List2.Text, 5)
                Case 2
                  RetVal = m.Run(List2.Text, 4, 23)
                Case Else
                  MsgBox "Procedure has too many arguments"
              End Select
              If .HasReturnValue Then
                MsgBox List2.Text & " returned: " & RetVal
              End If
            End With
          End Sub
    
          Private Sub Form_Activate()
          Dim m As Variant
            List1.Clear
            With SCriptControl1
              .Language = "VBScript"
              .AllowUI = True
              For Each m In .Modules
                List1.AddItem m.Name
              Next m
            End With
          End Sub
    
          Private Sub Form_Load()
            Command1.Caption = "Add Module"
            Command2.Caption = "Add Code"
            Command3.Caption = "Run Procedure"
          End Sub
    
          Private Sub List1_Click()
          Dim m As String, p As Variant
            m = List1
            List2.Clear
            If m = "" Then Exit Sub
            For Each p In ScriptControl1.Modules(m).Procedures
              List2.AddItem p.Name
            Next p
          End Sub
    
          Private Sub List2_Click()
          Dim m As String, p As String, r As Boolean, a As Long
            m = List1
            p = List2
            With ScriptControl1.Modules(m).Procedures(p)
              r = .HasReturnValue
              a = .NumArgs
            End With
            MsgBox m & "." & p & " has " & IIf(r, "a", "no") & _
                   " return value and " & a & " arguments"
          End Sub
    						
  5. Запустите форму Form1.
  6. Создайте новый модуль, введя следующее в текстовом поле и нажать кнопку Добавьте модуль:
          Mod2
    
    						
  7. В текстовом поле введите следующий сценарий:
          Function Calc(X)
            Calc = X * 2
          End Function
    						
  8. Выберите Global List1 и нажмите кнопку Добавить код для добавления глобального модуль.
  9. В текстовом поле введите следующий сценарий:
          Function Calc(X, Y)
            Calc = X * Y
          End Function
    
          Sub Test()
            MsgBox "The Test Sub in Module Mod2"
          End Sub
    						
  10. Выберите Mod2 в List1 и нажмите кнопку Добавить код для добавления глобального модуль.
  11. Щелкните на различные модули и процедур. При выборе процедуры появится сообщение, указывающее ли процедура имеет Возвращает значение, а также число аргументов, он принимает.
  12. После выбора процедуры нажмите кнопку запустить процедуру для его запуска. Код Определяет число аргументов, и вы увидите различные окна сообщений с результатами.
ПРИМЕЧАНИЕ:
  • Имя глобального модуля могут не всегда быть «Global» в зависимости от элемента управления версия или локализации. Используйте константу GlobalName вместо жесткого- кодирование слово «Global».
  • Отсутствует метод для удаления отдельных модулей или процедуры. У вас есть для использования.Метод Clear элемента управления сценария, чтобы стереть весь код. Вы можно переписать процедуру с использованием.Метод AddCode с помощью процедуры с таким же именем.

Ссылки

За сведениями о получении элемент управления сценария см следующие статьи базы знаний Майкрософт:
184739: INFO: где найти элемент управления сценария

Дополнительные сведения и примеры на вызов процедур в Global модуль, обратитесь к следующей статье Microsoft Knowledge Base:
184740: Как вызвать функции, используя элемент управления сценария

Элемент управления сценария Microsoft разделов справки:
   HasReturnValue Property
   NumArgs Property
   AddCode Method
   Run Method
   Modules Collection
   Procedures Collection
				

Свойства

Код статьи: 184745 - Последний отзыв: 4 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 4.0 Standard Edition
Ключевые слова: 
kbhowto kbscript kbmt KB184745 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:184745

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com