Eventos de Telas
KeyDown (KeyCode, Shift)
Ocorre no momento em que uma tecla é pressionada, independentemente do foco na Tela.
KeyCode: Número inteiro que identifica o caractere ASCII da tecla que foi pressionada
Shift: Mostra a tecla pressionada juntamente com o mouse: 4 = Tecla [Shift]; 8 = Tecla [Ctrl]; 12 = Teclas [Ctrl] + [Shift].
Exemplo:
Sub Tela1_KeyDown(KeyCode, Shift)
'Mostra uma caixa de mensagem quando o usuário pressiona uma tecla
MsgBox "Código da tecla: " & KeyCode
End Sub
Exercícios:
1. Quando o usuário apertar o Esc na Tela, sair do Viewer.
2. Quando a combinação Ctrl+Y for apertada, aparecer uma caixa de mensagem.
MouseDown (Button, ShiftState, MouseX, MouseY)
Ocorre quando se pressiona qualquer botão do mouse sobre a Tela. Utilize o evento MouseDown para determinar ações específicas quando a Tela for clicada pelo usuário.
Button: 1 – O botão do mouse pressionado é o esquerdo. 2 – O botão do mouse pressionado é o direito.
ShiftState: Mostra a tecla pressionada juntamente com o mouse: 4 = Tecla [Shift]; 8 = Tecla [Ctrl]; 12 = Teclas [Ctrl] + [Shift].
MouseX: Mostra a posição X onde o mouse foi clicado na Tela
MouseY: Mostra a posição Y onde o mouse foi clicado na Tela
Exemplo:
MsgBox "Coordenada X: " & MouseX & vbNewLine & "Coordenada Y: " & MouseY
Exercícios:
3. Ao clicar com o botão esquerdo na tela, exibir um calendário na coordenada x e y do clique.
4. Ao clicar com o botão direito do mouse na tela, abrir a paleta de cores (ShowPickColor) e alterar a cor de fundo da tela.
OnPreShow (Arg)
Ocorre antes da Tela ser mostrada. A variável de evento Arg recebe o conteúdo do parâmetro Arg do método OpenScreen(), que gera esse evento.
Exemplo:
Em um botão na tela inicial, inserimos o script abaixo onde a palavra “Recado” é o parâmetro Arg.
Sub CommandButton1_Click()
Application.GetFrame("").OpenScreen("Tela1"), "Recado"
End Sub
No evento OnPreShow da Tela1, exibimos o Arg em uma caixa de mensagem:
Sub Tela1_OnPreShow(Arg)
MsgBox Arg
End Sub
Exercícios:
5. Em uma tela, crie um setpoint e um botão para chamar uma segunda tela. Passe através do parâmetro Arg o que foi digitado no setpoint.
6. A segunda tela deve exibir em um display o parametro Arg.
7. Crie um XControl com um desenho de Motor, chamado XMotor.
8. Insira 3 XMotores na tela.
9. Ao clicar no XMotor deve ser aberta uma tela (sempre a mesma tela) e um display desta segunda tela deve mostrar o nome do XMotor clicado.
Eventos do Setpoint
Validate (Cancel, NewValue)
Ocorre após os testes de limites do SetPoint e antes do valor do SetPoint ser enviado para o tag. A finalidade deste evento é permitir que o usuário cancele o envio do valor do SetPoint para o tag. O valor antigo pode ser acessado pela propriedade Value do SetPoint.
Cancel: booleano que indica se a operação de atribuição do valor do SetPoint ao tag deve ser cancelada (Cancel = True). O padrão é False
NewValue: valor que está sendo avaliado.
Exemplo:
Sub Setpoint1_Validate(Cancel, NewValue)
' Mostra uma MsgBox que pergunta ao usuário se ele deseja usar o novo valor digitado no SetPoint
mensagem = "Valor atual: " & Value & vbnewline & "Valor novo: " & NewValue & vbnewline & "Aceita o novo valor?"
If MsgBox(mensagem, vbQuestion+vbYesNo, "Evento Validate")=vbNo Then
Cancel = True
End If
End Sub
Exercícios:
10. Insira um setpoint e um display na tela. Associe ambos ao mesmo tag interno.
11. Se o valor digitado no setpoint for diferente de 10, 20 ou 30, deve-se exibir uma mensagem ao usuário informando que este valor não é permitido. O valor não deve ser passado ao tag.
Eventos do E3Browser
OnDrawRow (Selected, Line, RowTextColor, RowBackColor)
Selected: indica se a linha está selecionada;
Line: indica o número da linha sendo desenhada;
RowTextColor: indica a cor do texto da linha;
RowBackColor: indica a cor de fundo do texto.
Se a cor for modificada dentro deste evento, esta modificação será usada pelo E3Browser no desenho da linha. Se o método GetColumnValue() for chamado de dentro do evento, os valores retornados serão os da linha sendo desenhada, e não os da linha selecionada.
Exemplo:
Estado = GetColumnValue(1)
If Estado=0 then
RowTextColor = RGB(255,0,0) 'vermelho
Else
RowTextColor = RGB(255,0,0) 'verde
End if
Exercícios:
12. Insira um objeto Banco de Dados na aplicação e configure-o.
13. Crie um tag de demonstração.
14. Insira um alarme para o tag de demonstração.
15. Salve os alarmes no banco de Dados.
16. Exiba os dados de alarmes no E3Browser
17. Se o registro for de entrada de alarme, deve ter a cor vermelha. Se for um reconhecimento, cor azul. Se for um retorno, preto.
Eventos do E3Chart
OnLegendClick(Row, Col, RowData)
Ocorre quando o usuário clica em uma linha da legenda. Os parâmetros Row e Col indicam, respectivamente, a linha e a coluna clicadas. O parâmetro RowData é o índice da pena da legenda onde ocorreu o clique.
Exemplo:
Sub E3Chart1_OnLegendClick(Row, col, RowData)
MsgBox “Nome da pena: ” & Pens.Item(RowData).name
End Sub
Exercícios:
18. Crie um gráfico na tela com pelo menos 3 penas. Mostre a legenda.
19. No evento OnStartRunning do E3Chart, insira o código abaixo para que todas as penas sempre apareçam:
Sub E3Chart1_OnStartRunning()
Legend.ShowAllPens = True
End Sub
20. Ao clicar em uma pena na legenda, mostre um menu com as opções Visivel e Cor (Select Menu)
21. Ao clicar na opção Visível, a pena deve aparecer/desaparecer.
22. Ao clicar na opção Cor, deve abrir uma paleta de cores onde é possível escolher a nova cor da pena.