MSDialog utilizando Loop

Tenho o seguinte cenário, tenho um array que preciso mostrar varios elementos dentro dele em um MSDialog Porém ao adicionar com um loop, ele vai pegar a variavel que passei e recalcular de acordo com o novo valor de nx


#define PERC(num,total) ((total*(num/100))/2)
for nx := 1 to nParcelas
          nLin += nGap
          @ PERC(nLin,nHeight), PERC(10, nWidth) SAY aParcelas[nx,1] OF oDlg PIXEL SIZE 300,100
          @ PERC(nLin,nHeight), PERC(20, nWidth) MSGET oTxt VAR aParcelas[nx,2] SIZE nBoxWidth, nBoxHeight OF oDlg COLORS 0, 16777215 PIXEL
          @ PERC(nLin,nHeight), PERC(67, nWidth) MSGET oTxt VAR aParcelas[nx,3] SIZE nBoxWidth, nBoxHeight OF oDlg COLORS 0, 16777215 PIXEL     next

Bom dia Thiago, não entendi, pode explicar mais sobre sua necessidade?

Tiago, pelo que entendi, você quer montar uma tela com as informações sobre parcelas, correto? Se sim, tenho uma sugestão: ao invés de “imprimir” os dados em tela, vc poderia criar um Dialog, e neste dialog vc poderia inserir um componente do tipo grid como FWBrowse, por exemplo, para exibir esses dados das parcelas. A ideia do grid é mais pelo dinamismo, pois em alguns momentos vc pode ter uma ou duas parcelas, mas em algumas situações vc poderia ter 30, 40 parcelas e aí começa a ficar difícil o controle para não estourar o espaço utilizado da tela. Com uma grid, isso não seria uma preocupação.

Nesta outra postagem, tem até um exemplo de uso desse componente que eu mencionei utilizando vetor:

Bom dia Jean.
Vou conferir a outra postagem, obrigado pela sugestão!

Bom dia, Felipe!
Consegui resolver esse problema, era por que em MSDialog quando estava passando uma variável, por exemplo nNumero com o valor de 30.
O TGet não estava salvando o valor ‘30’ e sim qual variável que ele deveria apresentar.
Então no momento que eu alterasse o valor da variável nNumero, esse TGet também iria atualizar com o novo valor , e isso tem um comportamento inesperado em um loop

1 curtida