Noções de VBScript no Software Elipse E3: Lição 4 – Eventos.

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.

Anexos:

Licao4.zip

Este artigo foi útil? Was this post helpful?
Yes0
No0

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *