<< Clique para Mostrar o Sumário >>
Acessando Propriedades do Servidor |
Para se acessar um objeto em execução no servidor a partir de um objeto de Tela ou um ElipseX, deve-se usar o método Application.GetObject.
A palavra Application retorna o objeto de aplicação relacionado ao contexto atual do objeto, e o método GetObject procura no servidor por um objeto dentro de Application com o nome fornecido, conforme o exemplo a seguir.
Sub Button1_Click()
Application.GetObject("Driver1")._
Item("tag001").AllowRead = False
End Sub
Ou ainda conforme o exemplo a seguir.
Sub Button1_Click()
Application.GetObject("Driver1.tag001").AllowRead = False
End Sub
O método Item foi utilizado para, a partir da referência de Driver1, localizar o tag001, pois um Driver é uma coleção de Tags. Depois de localizado o objeto, as propriedades e métodos podem ser acessados livremente.
Caso alguma outra operação tivesse que ser realizada com Driver1 ou tag001, outra alternativa para o script anterior seria a do exemplo a seguir.
Sub Retangulo1_Click()
Set obj = Application.GetObject("Driver1")
obj.Item("tag001").AllowRead = False
obj.Item("tag002").AllowRead = False
End Sub
Neste caso, a variável obj está apontando para o objeto Driver1 e, na próxima vez que se quiser acessar algum objeto que descende de Driver1 dentro do script, pode-se utilizar a variável obj diretamente. Isto traz um ganho de performance, já que cada chamada do método GetObject executa um acesso ao servidor. Através desta técnica, chamadas desnecessárias ao servidor são evitadas. Este exemplo usa o comando Set, que é explicado mais adiante. Note que a utilização de variáveis também torna o código mais claro e de modificação mais fácil. Caso seja necessário alterar o objeto para executar comandos, mude a linha de atribuição desta variável.
A palavra Application nos scripts pode indicar tanto funções que são executadas no Elipse Water Viewer quanto no servidor. Neste caso, o objeto Application sabe de antemão quais funções devem ser executadas tanto para um quanto para o outro caso. Não é possível, entretanto, executar funções de Elipse Water Viewer dentro do servidor, assim como também não é possível executar funções de servidor dentro do Elipse Water Viewer.