Como utilizar scripts controlo módulos e colecções de procedimentos

Traduções de Artigos Traduções de Artigos
Artigo: 184745 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo demonstra como utilizar as propriedades módulos e procedimentos de controlo de scripts da Microsoft para segmento de código. Também demonstra como pode determinar dinamicamente o número de argumentos e se o procedimento é Function ou sub.

Mais Informação

O controlo de scripts da Microsoft inclui funcionalidades que permitem a aplicação anfitriã para segmento de scripts em módulos diferentes. Módulo predefinido, "Global", está sempre presente. Módulos diferentes podem conter procedimentos o mesmo nome (ou seja, nomes de procedimento têm âmbito de módulo).

O controlo de scripts da Microsoft também inclui propriedades procedimento que permitem a aplicação inicial determinar dinamicamente se o procedimento é uma função ou uma subclasse, bem como o número de argumentos que espera. Isto permite à aplicação anfitrião pedir ao utilizador para o número correcto de valores de parâmetros.

A propriedade de módulos do controlo script é um objecto que contém uma colecção de objectos de módulo. Tem as seguintes propriedades e métodos:
  • N.º: O número de módulos.
  • Item(x): Devolve um objecto de módulo único.
  • Adicionar nome: Adiciona um módulo em branco com o nome especificado.
O módulo de objecto tem as seguintes propriedades e métodos:
  • Nome: O nome de módulo.
  • Procedimentos: O objecto de procedimentos.
  • Código AddCode: Adiciona o código do módulo.
  • Nome de execução, argumentos: executa o procedimento com nome.
O objecto de procedimentos contém uma colecção de objectos do procedimento. Tem as seguintes propriedades e métodos:
  • N.º: O número de procedimentos do módulo.
  • Item(x): Devolve um único objecto de procedimento.
O objecto PROCEDURE tem as seguintes propriedades e métodos:
  • Nome: O nome de procedimento.
  • HasReturnValue: Indica se o procedimento é uma sub ou Function.
  • NumArgs: O número de argumentos que requer que o procedimento.
NOTA: Nem todas as propriedades e métodos dos objectos listados forem fornecidos, apenas os relevantes para este artigo.

O seguinte exemplo fornece um programa interactivo que ilustra como utilizar estas propriedades e métodos:

Importante: Microsoft fornece exemplos de programação ilustração só, sem garantia expressa ou implícita, incluindo, sem limitação, garantias implícitas de comercialização e/ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação apresentada e as ferramentas utilizadas para criar e depurar procedimentos.

Exemplo

  1. No Visual Basic, crie um novo projecto (Form1 é criado por predefinição).
  2. Clique em ' componentes ' no menu Project e, em seguida, seleccione a caixa de verificação "Controlo de scripts da Microsoft 1.0".
  3. Adicione o script de controlo (ScriptControl1), uma caixa de texto (Texto1), três botões de comando (Command1, Command2, Command3), e duas 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. Crie um novo módulo escrevendo o seguinte na caixa de texto e clicando em Add Module:
          Mod2
    
    						
  7. Escreva o seguinte script na caixa de texto:
          Function Calc(X)
            Calc = X * 2
          End Function
    						
  8. Seleccione global em Lista1 e, em seguida, clique em Adicionar código para adicionar o módulo global.
  9. Escreva 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. Seleccione Mod2 Lista1 e, em seguida, clique em Adicionar código para adicionar o módulo global.
  11. Clique na vários módulos e procedimentos. Quando selecciona o procedimento que é apresentada uma caixa de mensagem, indicando se o procedimento tem um valor de retorno, bem como o número de argumentos demora.
  12. Depois de seleccionar um procedimento, clique em Executar procedimento executá-la. O código determina o número de argumentos para utilizar e verá várias caixas de mensagem com os resultados.
NOTA:
  • O nome do módulo global poderá nem sempre estar "Global" dependendo da versão de controlo ou localização. Utilizar a constante GlobalName em vez do disco rígido - codificação a palavra "Global".
  • Não existe nenhum método para remover módulos individuais ou procedimentos. Tem de utilizar o método .Clear do controlo de script para apagar todos os códigos. Pode substituir um procedimento utilizando o método .AddCode com um procedimento com o mesmo nome.

Referências

Para obter informações sobre como obter o controlo de script, consulte o seguinte artigo na base de dados de conhecimento da Microsoft:
184739: INFO: onde obter o controlo de script

Para obter informações adicionais e exemplos no chamar procedimentos no módulo global, consulte o seguinte artigo na base de dados de conhecimento da Microsoft:
184740: como chamar funções utilizando o controlo de script

Controlo de scripts da Microsoft tópicos de ajuda:
   HasReturnValue Property
   NumArgs Property
   AddCode Method
   Run Method
   Modules Collection
   Procedures Collection
				

Propriedades

Artigo: 184745 - Última revisão: 13 de julho de 2004 - Revisão: 4.1
A informação contida neste artigo aplica-se a:
  • 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 32-Bit Enterprise Edition
  • Microsoft Visual Basic for Applications 5.0
Palavras-chave: 
kbmt kbhowto kbscript KB184745 KbMtpt
Tradução automática
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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 184745

Submeter comentários

 

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