Forum > Portuguese

TStringGrid: erro ao exibir Strings, altera ordem dos caracteres

(1/2) > >>

Geovane:
Caros, preciso de uma ajuda.

Não estou conseguindo entender porque um componente TStringGrid está modificando as strings que estou passando por meio de um array.

Já fiz um teste abrindo uma caixa de mensagem com os dados a serem impressos no TStringGrid. E tudo está conforme conforme deveria.


--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---for i:=low(azimutes) to high(azimutes)do     begin          memo[i].azimute:= GrausDecParaSexagesimais(azimutes[i]);          // IMPRIMI O RESULTADO DO RECORD          //ShowMessage(memo[i].id+', '+FloattoStr(memo[i].x)+', '+FloattoStr(memo[i].y)+', '+memo[i].alinhamento+', '+memo[i].azimute+', '+FloattoStr(memo[i].distancia));           // coloca as propriedades do Record em um array de String de 6 posições;          Slinhas[0]:= memo[i].id;          Slinhas[1]:= FloattoStr(memo[i].x);          Slinhas[2]:= FloattoStr(memo[i].y);          Slinhas[3]:= memo[i].alinhamento;          Slinhas[4]:= memo[i].azimute;          Slinhas[5]:= FloattoStr(memo[i].distancia);           // i+1 para não eliminar ou sobreescrever a linha 0 com o cabeçalho          StringGrid1.DeleteRow(i+1);          StringGrid1.InsertRowWithValues(i+1, Slinhas);      end;

Gustavo 'Gus' Carreno:
Boas Geovane,

Tive de ler, pelo menos, umas 3 vezes o teu post a fim de tentar ver se havia alguma informação que eu conseguisse pegar para perceber o erro que te aflige.

Infelizmente, não consegui discernir onde vc tem a comparação do resultado desejado e o resultado em erro.

Dava para indicar a coisa melhor?

Muitíssimo obrigado!!

Grande abraço,
Gus

Geovane:
Obrigado pela Resposta.

Então, estou usando um record para representar um registro topográfico de um vertice (id, coordenada x, coordenada y, alinhamento(ponto x - ponto x+1), azimute (angulo em relação ao norte) e distancia.

Os dados estão sendo recuperados de um arquivo csv.

E até aqui tudo está funcionando bem. Fiz um teste com uma caixa de mensagem (em anexo) e os dados estão de acordo com o desejado.

Então faço um loop para percorrer o record e coloco as dados em um Array de String para inserir do TStringGrid através da função InsertRowWithValues.

O problema ocorre no TStringGrid, que exibe a variável alinhamento 3-2 ,quando a string estava 2-3, ou no azimute que exibe "276º18'26, colocando as aspas duplas, na frente. Neste contexto as aspas indicam os segundos do ângulo.

Gustavo 'Gus' Carreno:
Boas Geovane,

Ok, muito obrigado pela clarificação!!
Agora a coisa faz mais sentido. Pelo menos no contexto de: Qual é o erro?

Agora a coisa complica ainda mais:

* Completa inversão de uma string na coluna 4
* Estranha ocorrência de aspas duplas na frente do valor na coluna 5
Assim, de repente, nada de muito óbvio me ocorre.

A única coisa que me ocorre é perguntar se mexeste nas opções de formatação das colunas 4 e 5?
Pra ser bem franco, não sou mestre de TStringGrids. Alias, detesto os caras com a maior das paixões  :D

Prefiro muito mais tabelas em memória: TestMemoryDataset e TestRxMemoryData como exemplos.

Faz uma investigação por esta ordem:

* As opções de formatação das colunas na TStringGrid
* As propriedades da TStringList que mexem com aspas duplas e ou separadores
Eu sei que isto é bem genérico, mas temos de começar por algum lado para descobrir o fio à meada, certo?

Grande abraço,
Gus

Geovane:
Obrigado pelas sugestões Gustavo.

Vou estudar o uso de tabelas em memória, como novato desconhecia essas possibilidades.

Além disso, vou revisar as configurações do componente TStringGrid, como você sugeriu. Cheguei a pensar que fosse algum problema do componente. Mas fiz um teste bem rápido e o resultado sai como esperado, segue um print.

Assim que chegar a uma conclusão trarei o resultado.

Obrigado pelo apoio.

Navigation

[0] Message Index

[#] Next page

Go to full version