Bom dia
Eu tenho um XControl que tem um retângulo e eu preciso em tempo de execução trocar a fonte do VerticalPercentFill retângulo.
Tem como fazer?
Bom dia
Eu tenho um XControl que tem um retângulo e eu preciso em tempo de execução trocar a fonte do VerticalPercentFill retângulo.
Tem como fazer?
@wagner.dracha, bom dia.
Sim, tem como fazer. Cria uma propriedade no XControl associado a este VerticalPercentFill e depois cria um script em um objeto de tela na tela em que este XControl será instanciado para mudar esta associação em Runtime.
Sobre o script, verifica estes artigos aqui, aqui e aqui (ou este video).
Sds.
Entendi. Legal!!
Mas assim, por exemplo, o valor está em: Drive1.teste.Value
Só que na propriedade do XControl, eu só quero gravar o valor teste.
Então, na fonte do VerticalPercentFill do retângulo, eu tentei colocar assim: “Drive1.” & XC_Teste.tag_nome & “.Value”
Mas ele não atualiza.
Mas se eu colocar o seguinte código na tela inicial, ele dá o seguinte erro:
Linha 66:
msgbox Application.GetObject(“Driver1.[” & rec.Fields(“tag_nome”).Value & “]”).Value
Erro:
TelaInicial
Erro na linha 66: 'Uso inválido de Null: ‘Application.GetOBject(…).Value’
O que pode ser?
Neste caso, o melhor é fazer por script.
No evento OnStartRunning do retângulo, deve fazer algo desta forma:
Sub Retangulo1_OnStartRunning()
If XC_Teste.tag_nome <> “” Then
Links.CreateLink “VerticalPercentFill”, (“Driver1.”& XC_Teste.tag_nome & “.Value”), 0
End If
End Sub
Depois, no evento da propriedade “tag_nome” colocar algo desta forma:
Sub XC_Teste_Ontag_nomeChanged()
Set ret = Item(“Retangulo1”).Links
If tag_nome <> “” then
ret.Item(“VerticalPercentFill”).Source = “Driver1.”&tag_nome&".Value"
Else
ret.CreateLink “VerticalPercentFill”, (“Driver1.”& tag_nome & “.Value”), 0
End If
End Sub
Provavelmente não está retornando valor nesta Consulta.
Verifica, por favor, se colocando MsgBox rec.Fields(“tag_nome”).Value retorna alguma coisa. Caso não retorne, verifica a lógica do script e se a consulta está retornando algo.
Sds.
Eu coloquei este código direto na tela e funcionou:
Item("XC_Teste" & i).Item("Retangulo2").Links.CreateLink "VerticalPercentFill", "Driver1.[" & pontosNovos(i, 6) & "].Value", 1
Obrigado