IUAVariable.VariableChange
Esse evento ocorre quando muda o valor da variável do projeto que o objeto C#
IUAVariable
faz referência.event EventHandler<VariableChangeEventArgs> VariableChange;
IMPORTANTE:
Se a variável do projeto fizer referência a uma variável de campo, o evento será gerado somente se a variável do projeto for mantida sincronizada com o valor de campo por meio de um objeto
RemoteVariableSynchronizer
, a menos que exista um vínculo para as seguintes entidades:- Variável tag de um objeto gráfico
- Objeto Registrador de dados
- Alarme
- Objeto Esquema de receita
Nesse cenário, em um NetLogic, você pode inscrever o método de alteração de valor diretamente na variável tag vinculada.
Manipulador de eventos
O manipulador de eventos
VariableChange
permite que você inscreva um método para um evento com o mesmo nome.public delegate void VariableChange(object sender, VariableChangeEventArgs e);
Argumentos do manipulador de eventos
- sender(object)
- Objeto C# que corresponde ao objeto da origem do projeto do evento.
- e(VariableChangeEventArgs)
- Objeto C# que contém as seguintes propriedades:
- variable(IUAVariable)
- Variável do projeto que gerou o evento.
- newValue(UAValue)
- Novo valor da variável.
- oldValue(UAValue)
- Valor anterior da variável.
- indexes(uint[])
- Somente para matrizes:Índices das células da matriz em que o valor foi alterado.DICA: A propriedade fica vazia se o valor em cada célula for alterado ou se a variável do projeto for escalar.
Exemplo
O método
Variable1_VariableChange
é executado sempre que a variável Variable1
do projeto muda de valor.public override void Start() { var variable1 = Project.Current.GetVariable("Model/Variable1"); variable1.VariableChange += Variable1_VariableChange; } private void Variable1_VariableChange(object sender, VariableChangeEventArgs e) { var label1 = Owner.Get<Label>("Label1"); label1.Text = "Value of " + e.Variable.BrowseName + " changed from " + e.OldValue + " to " + e.NewValue; }
Dê sua opinião