Utilizando os métodos GetScreen e ShowScreen.

Descrição:

Como posso utilizar os métodos GetScreen do Viewer e ShowScreen do Divisor? Para que eles servem?

Solução:

O método GetScreen(ScreenName) retorna um objeto Tela, cujo nome deve ser especificado no parâmetro ScreenName. O valor de retorno deste método pode ser utilizado no método ShowScreen do objeto Divisor.

Já o método ShowScreen(Screen, Zoom, Scrollbars[, Arg]) carrega uma tela no Divisor, fechando a tela ou Quadro carregado anteriormente. O parâmetro Screen somente aceita o objeto retornado pelo método GetScreen do Viewer. Este método falha caso seja utilizado um objeto Tela obtido a partir de outro método ou propriedade, como por exemplo a propriedade Screen, comum a todos os objetos de tela.

Para ilustrar a utilidade destes métodos, imagine uma situação onde seja necessário abrir uma tela e executar alguns scripts. Antes destes métodos terem sido criados, era necessário um script para abertura da tela, e nesta tela um outro script (normalmente no evento de OnPreShow) para acessar seus objetos filhos.

O problema com esta abordagem seria, por exemplo, a criação de bibliotecas que dependem sempre da criação deste script na aplicação, não permitindo o desenvolvimento de uma biblioteca capaz de reduzir problemas de acoplamento. Com os novos métodos GetScreen e ShowScreen, é possível realizar a chamada da abertura da tela por script, e antes que a tela seja aberta, receber o objeto Tela e acessar os objetos filhos desejados.

A aplicação em anexo ilustra o uso de uma tela indexada janelada, que atribui o caminho do XObject associado ao XControl diretamente no script do evento Click do objeto, não sendo necessário enviar e receber o parâmetro no evento OnPreShow.

Script utilizado:

Sub Picture1_Click()

Arg = XCMotor.Source.PathName
Set newScreen = Application.GetFrame("virtualFrame")
newScreen.MoveFrame , , 250, 300
newScreen.SetFrameOptions XCMotor.Source.Name, 15+64+256+2048

Set screenObj = Application.GetScreen("CommandScreen")
screenObj.Item("IndexedScreen1").Source = Arg
newScreen.ShowScreen screenObj, 100, 0

End Sub

Importante salientar que o método GetScreen baixa do servidor (e carrega em memória) ou pega do cache em memória do Viewer uma tela inativa (fechada). Essa tela posteriormente pode ser utilizada pelo método ShowScreen para ser aberta realmente.
Portanto, fora deste cenário, basicamente a sua utilização irá depender se a tela utilizada/carregada estiver aberta ou não.

NOTA: A aplicação em anexo foi desenvolvida com a versão 4.8 build 239 do Elipse E3.

Anexos:

Sample.zip

Print Friendly, PDF & Email

Este artigo foi útil? Was this helpful?

Classificação média - Average rating 5 / 5. Count: 1

Thoughts on “Utilizando os métodos GetScreen e ShowScreen.

Leave a Reply

Your email address will not be published.Required fields are marked *