Texto em posicão específicas na string - Delphi

15/11/2022

0

Pessoal eu procurei aqui no forum e na web, não estou conseguindo formatar, alinhar textos dentro de uma string em uma posição específica: Exemplo:

NOME IDADE KILOS VALOR GENERO
joao 10 20 30 masculino
maria 20 30 41 feminino
toto 30 40 11 Animal

já tentei de tudo e nao consigo! Alguém tem alguma idéia?

O nome começar na posicão 0
Idade na posicao 30
kilos na posicao 40
valor na posicao 50
genero na posicao 60

É só um exemplo de como seria a formatação pra ficar alinhado os dados, ao mostrar a string para o usuário.
Assis Ferreira

Assis Ferreira

Responder

Posts

15/11/2022

Emerson Nascimento

siga o raciocínio abaixo (pode ter algum erro de sintaxe porque não testei o código)

nTamNome := 30;
nTamQuilos := 10; nDecQuilos := 2;
nTamValor := 10; nDecValor := 2;
nTamGenero := 10;

strNome := StrUtils.LeftStr([nome]+StrUtils.DupeString(' ',nTamNome),nTamNome);
strQuilos := StrUtils.RightStr(StrUtils.DupeString(' ',nTamQuilos)+SysUtils.FloatToStrF([kilos],ffNumber,nTamQuilos,nDecQuilos),nTamQuilos); 
strValor := StrUtils.RightStr(StrUtils.DupeString(' ',nTamValor)+SysUtils.FloatToStrF([valor],ffCurrency,nTamValor,nDecValor),nTamValor); 
strGenero := StrUtils.LeftStr([genero]+StrUtils.DupeString(' ',nTamGenero),nTamGenero);

strResult := strNome+strQuilos+strValor+strGenero;


Responder

16/11/2022

Assis Ferreira

valeu, não ficou 100% mas melhorou bastante! devido ao tamanho das letra e espaços, em certas
colunas ficou com uma diferença de 3 caratecteres a direita ou a esquerda, dependendo dos dados.

Creio que eu deveria usar algo como linha/coluna pra ficar bem alinhado ou algo que posso definir
o local correto de cada dado: exemplo: 'NOME', posição 25 da linha, uma coisa assim.


Responder

16/11/2022

Emerson Nascimento

Quando você apresenta um dado "colunado", você precisa apresentar usando uma fonte com caracteres de largura fixa, como Courier ou Courier New.
Não adianta usar uma fonte como Times New Roman, onde a letra W tem uma largura e a I é muito mais fina. Nunca a apresentação sairá como você espera.



Responder

27/12/2022

Arthur Heinrich

Existe a possibilidade de exibir os dados em um StringGrid, com uma coluna para cada informação, como se fosse no Excel.
Responder

16/06/2024

Assis Ferreira

Existe a possibilidade de exibir os dados em um StringGrid, com uma coluna para cada informação, como se fosse no Excel.
sim, mas vc teria que mudar diretamente no fast ou fortes report!
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar