Quando o operador precisa ampliar uma região da tela em tempo de execução, o menu de Zoom (botão direito) e o Zoom de Área resolvem — desde que Viewer e Telas estejam configurados.
1. O que é o menu de Zoom (e o Zoom de Área)
O menu de Zoom permite ampliar uma região específica da tela em tempo de execução. É um menu de contexto acionado com o botão direito do mouse sobre a tela em execução e reúne as opções de ampliação e redução, incluindo o Zoom de Área — o modo em que o usuário desenha um retângulo com o mouse e a tela é ampliada para enquadrar exatamente aquela região. Este artigo mostra quais propriedades configurar — no Viewer, nas Telas e no comando OpenScreen — para habilitar esse menu.
Para que esse recurso funcione, três comportamentos precisam estar habilitados:
- Exibir o menu de contexto de Zoom ao clicar com o botão direito (
AllowContextMenu); - Permitir a alteração do zoom em tempo de execução (
AllowZoomChange); - Centralizar a tela para que a região ampliada seja posicionada e navegável de forma previsível (
ScreenAlignment).
Essas propriedades existem tanto no Viewer (valem como padrão para toda a aplicação e para a Tela Inicial) quanto em cada Tela (podem herdar do Viewer ou ser definidas individualmente).
2. Propriedades envolvidas
| Propriedade | No Viewer | Nas Telas | Função |
|---|---|---|---|
AllowContextMenu |
True ou False |
0 (ppDefault), 1 (ppAllow) ou 2 (ppBlock) |
Exibe o menu de Zoom ao clicar com o botão direito |
AllowZoomChange |
True ou False |
0 (ppDefault), 1 (ppAllow) ou 2 (ppBlock) |
Permite alterar o zoom em tempo de execução |
ScreenAlignment |
1 (paTopLeft) ou 2 (paCenter) |
0 (paDefault), 1 (paTopLeft) ou 2 (paCenter) |
Alinhamento da tela dentro do Viewer |
Nas Telas, os valores Default fazem a Tela herdar as configurações do Viewer destas propriedades; qualquer outra opção força explicitamente o recurso naquela Tela. Como o padrão de fábrica da propriedade ScreenAlignment do Viewer é paTopLeft, para exibir o Zoom de Área é preciso alterá-la para paCenter no Viewer, ou diretamente na Tela desejada, ou forçar o parâmetro de alinhamento do comando que abre a Tela.
Hierarquia de configuração
O alinhamento, o zoom e a barra de rolagem seguem uma ordem de precedência: a configuração do Viewer é a base; a configuração de cada Tela prevalece sobre a do Viewer (quando não está em default); e os parâmetros do OpenScreen prevalecem sobre todos. Assim, se o OpenScreen não informar parâmetros (apenas o nome da Tela), vale a configuração da Tela; se, além disso, a Tela estiver toda em default, vale a configuração do Viewer.
Por que a centralização importa?
Com a tela centralizada (paCenter), a região ampliada pelo Zoom de Área é posicionada de forma consistente e a barra de rolagem permite navegar por todo o conteúdo — inclusive liberando o deslocamento (pan) da tela mesmo quando ela cabe na área visível. Com paTopLeft, a tela permanece “colada” no canto superior esquerdo ao ampliar.
3. Como habilitar
Pelo E3 Studio — no Viewer
Na lista de propriedades do objeto Viewer, no grupo Comportamento, ajuste:
AllowContextMenu = TrueAllowZoomChange = TrueScreenAlignment = 2 - paCenter
A aba Visualizador da janela de propriedades do Viewer traz, além disso, ajustes específicos da Tela Inicial:
- Alinhamento da Tela: Forçar Centralizado — centraliza a abertura da Tela Inicial;
- marque Habilitar barra de rolagem na Tela Inicial para permitir navegar pela região ampliada;
- marque Exibir o menu do Zoom ao clicar com o botão direito do mouse (propriedade
AllowContextMenu) — obrigatório para o menu de Zoom aparecer.
Atenção — há dois “Alinhamento da Tela” diferentes
O campo Alinhamento da Tela desta aba não altera a propriedade ScreenAlignment do Viewer: ele define o alinhamento apenas da abertura da Tela Inicial. O alinhamento das demais Telas é governado pela propriedade ScreenAlignment (na lista de propriedades) e por cada Tela. Portanto, ajuste sempre a propriedade ScreenAlignment na lista de propriedades — não apenas o combo desta aba.
Pelo E3 Studio — nas Telas
A configuração do Viewer atende à Tela Inicial. As demais Telas devem atender individualmente às propriedades. Na lista de propriedades de cada Tela, no grupo Comportamento, ajuste:
AllowContextMenu = 1 - ppAllow(ou0 - ppDefaultpara herdar do Viewer)AllowZoomChange = 1 - ppAllow(ou0 - ppDefaultpara herdar do Viewer)ScreenAlignment = 2 - paCenter(ou0 - paDefaultpara herdar do Viewer)
Por script (comando OpenScreen)
Ao abrir uma tela por script com OpenScreen, é possível passar os parâmetros de zoom, barra de rolagem e alinhamento diretamente na string da tela, no formato Tela?Zoom?Scroll?Align:
' Abre a Tela2 em 100%, com barra de rolagem quando necessária e centralizada Application.GetFrame("").OpenScreen "Tela2?100?1?2", 0
Onde:
| Componente | Valor no exemplo | Significado |
|---|---|---|
Zoom |
100 |
Escala de 100% (tamanho nativo — ideal para o Zoom de Área) |
Scroll |
1 |
Barra de rolagem exibida quando necessário (0 = nunca, 2 = sempre) |
Align |
2 |
Tela centralizada no frame |
Também vale para o DoModal
Os mesmos parâmetros de zoom, barra de rolagem e alinhamento, junto ao nome da tela e separados por ?, aplicam-se ao abrir uma tela como janela modal com DoModal — por exemplo, Application.DoModal(Application.GetScreen("Tela2?100?1?2"), "Título", 100, 100, 400, 300, "").
4. Resultado
Com as propriedades habilitadas, ao clicar com o botão direito sobre a tela em execução o operador passa a ver o menu de contexto. A partir dele é possível acionar diferentes níveis de zoom — modos como Toda Tela e Preencher, percentuais fixos (de 10% a 10000%) e o Zoom de Área, que permite arrastar um retângulo sobre a região de interesse para ampliá-la. A barra de rolagem permite então navegar por todo o conteúdo da tela ampliada. O menu também oferece opções de Alinhamento, Qualidade, Enquadrar e Mover.
5. Observações e boas práticas
- Escala fixa favorece o Zoom de Área. Para ampliar uma região é preciso que exista detalhe a ser ampliado. Abrir a tela em uma escala fixa (ex.:
100%) mantém o conteúdo em tamanho nativo. O modo Preencher estica a tela para ocupar todo o Viewer, o que reduz o proveito da ampliação por área. - Habilite a barra de rolagem. Sem ela, as opções Zoom de Área, Enquadrar e Mover não ficam disponíveis no menu, e o usuário não consegue navegar pelas demais partes da tela ampliada.
- Herança pelo
ppDefault. Definir as propriedades no Viewer e deixar as Telas emppDefaultcentraliza a configuração em um único ponto — útil em aplicações com muitas telas. - Vale para toda Tela que deve permitir zoom. As opções de zoom, alinhamento e barra de rolagem definidas na aba Visualizador da janela de propriedades do Viewer cobrem apenas a Tela Inicial. Para as demais Telas, valem as propriedades do Viewer e de cada Tela — por herança ou definidas explicitamente.
- Alinhamento pelo próprio menu. O menu de contexto também traz Alinhamento (Esta Tela) e Alinhamento (Todas as Telas), permitindo ao operador forçar o alinhamento em tempo de execução — útil para reposicionar a tela após uma ampliação. Esse ajuste tem precedência sobre o definido nas propriedades.
