Como usar scripts controle módulos e procedimentos coleções

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 184745
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Este artigo demonstra como usar as propriedades módulos e procedimentos do controle de scripts da Microsoft para código de segmento. Ele também demonstra como você pode determinar dinamicamente o número de argumentos e se o procedimento é uma função ou sub.
Mais Informações
O controle de scripts da Microsoft inclui recursos que permitem que o aplicativo de host para segmento de scripts em diferentes módulos. O módulo padrão, "Global", está sempre presente. Diferentes módulos podem conter procedimentos o mesmo nome (ou seja, nomes de procedimento têm escopo do módulo).

O controle de scripts da Microsoft também inclui propriedades de procedimento que permitem que o aplicativo host determinar se o procedimento é uma função ou um sub, bem como o número de argumentos espera dinamicamente. Isso permite que o aplicativo de host para solicitar ao usuário para o número correto de valores de parâmetro.

A propriedade módulos do controle de script é um objeto que contém uma coleção de objetos do módulo. Ele tem a propriedades e métodos a seguir:
  • Contagem: O número de módulos.
  • Item(x): Retorna um único objeto de módulo.
  • Adicionar nome: adiciona um módulo em branco com o nome fornecido.
Objeto Module tem as propriedades e métodos a seguir:
  • Nome: O nome de módulo.
  • Procedimentos: O objeto de procedimentos.
  • Código AddCode: adiciona o código para o módulo.
  • Nome de execução, args: executa o procedimento chamado.
O objeto procedimentos contém uma coleção de objetos do procedimento. Ele tem a propriedades e métodos a seguir:
  • Contagem: O número de procedimentos do módulo.
  • Item(x): Retorna um único objeto de procedimento.
O objeto de procedimento tem as propriedades e métodos a seguir:
  • Nome: O nome de procedimento.
  • HasReturnValue: Indica se o procedimento é um sub ou uma função.
  • NumArgs: O número de argumentos, que o procedimento exige.
Observação: Nem todas as propriedades e métodos dos objetos listados são fornecidos, apenas aqueles relevantes para este artigo.

O exemplo a seguir fornece um programa interativo que ilustra como usar essas propriedades e métodos:

Importante: Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita, incluindo, mas não se limitando às garantias implícitas de comercialização e/ou adequação a uma finalidade específica. Este artigo presume que você esteja familiarizado com a linguagem de programação demonstrada e as ferramentas usadas para criar e depurar procedimentos.

Exemplo

  1. No Visual Basic, crie um novo projeto (Form1 é criado por padrão).
  2. Clique em componentes no menu projeto e selecione a caixa de seleção "Controle de scripts da Microsoft 1.0".
  3. Adicionar o script controle (ScriptControl1), uma caixa de texto (Texto1), três botões de comando (Command1, Command2, Command3), e dois listam caixas (Lista1, List2) ao Form1. Defina a propriedade MultiLine da caixa de texto como TRUE. Dimensione a caixa de texto para acomodar 5 linhas de 30 caracteres.
  4. Adicione o seguinte código ao 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. Execute o Form1.
  6. Criar um novo módulo digitando o seguinte na caixa de texto e clicando em Add Module:
          Mod2						
  7. Digite o seguinte script na caixa de texto:
          Function Calc(X)        Calc = X * 2      End Function						
  8. Selecione global em Lista1 e, em seguida, clique em Adicionar código para adicionar o módulo global.
  9. Digite o seguinte script na caixa de texto:
          Function Calc(X, Y)        Calc = X * Y      End Function      Sub Test()        MsgBox "The Test Sub in Module Mod2"      End Sub						
  10. Selecione Mod2 na Lista1 e, em seguida, clique em Adicionar código para adicionar o módulo global.
  11. Clique nos vários módulos e procedimentos. Quando você seleciona o procedimento que será exibida uma caixa de mensagem, indicando se o procedimento tem um valor de retorno, bem como o número de argumentos demora.
  12. Depois de selecionar um procedimento, clique em executar o procedimento para executá-lo. O código determina o número de argumentos para usar e você verá várias caixas de mensagem com os resultados.
OBSERVAÇÃO:
  • O nome do módulo global não pode ser sempre "Global" dependendo da versão do controle ou localização. Use a constante GlobalName em vez de disco rígido - codificação a palavra "Global".
  • Não há nenhum método para remover módulos individuais ou procedimentos. Você precisará usar o método .Clear do controle de script para apagar todo o código. Você pode substituir um procedimento usando o método .AddCode com um procedimento de mesmo nome.
Referências
Para obter informações sobre como obter o controle de script, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
184739: INFO: onde obter o controle de script

Para obter informações adicionais e exemplos de chamar procedimentos no módulo global, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
184740: como chamar funções usando o controle de script

Tópicos da Ajuda de controle de scripts da Microsoft:
   HasReturnValue Property   NumArgs Property   AddCode Method   Run Method   Modules Collection   Procedures Collection				
kbVBA500 kbVBp500 kbVBp400 kbVBp600 kbScript kbCtrl kbdse kbDSupport kbVBp

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 184745 - Última Revisão: 12/05/2015 08:36:50 - Revisão: 4.1

Microsoft Visual Basic 5.0 Learning Edition, Microsoft Visual Basic 6.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 Enterprise Edition for Windows 6.0, Microsoft Visual Basic 4.0 Standard Edition, Microsoft Visual Basic 4.0 Professional Edition, Microsoft Visual Basic 4.0 de 32 Bits Enterprise Edition, Microsoft Visual Basic for Applications 5.0

  • kbnosurvey kbarchive kbmt kbhowto kbscript KB184745 KbMtpt
Comentários
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)