Fórum SOS Problema com Listbox #516496

12/04/2015

0

No meu ListBox, os dados aparecem colados um no outro, eu queria saber como separá-los (Preço Unitário de Quantidade)
[img]http://arquivo.devmedia.com.br/forum/imagem/424081-20150412-181605.png[/img]
Erick

Erick

Responder

Posts

12/04/2015

Lucas Ramos

Boa Noite

Precisa ser realmente em um list box?

Para usar um list box, você tem que ver o tamanho do texto entre o início do primeiro campo até o início do segundo campo e preencher os campos com caracteres de espaço, para isso faça uma função.

function PreencherStr(pTexto: string; pTamanho: integer): string;
var
        lCont: integer;
        lTexto: string;
begin
         lTexto := pTexto;
         
         for lCont := Length(pTexto) to pTamanho do
         begin
                  lTexto := lTexto + ' ';
         end;
 
         result := lTexto;
end;


Como usar

ListBox1.Items.Add(PreencherStr('Arroz',10) + PreencherStr('R$ 10,001',10) + PreencherStr('1',10) + PreencherStr('R$ 10,001',10));


Só uma observação, procure um tipo de fonte para o listbox onde cada caractere ocupe o mesmo tamanho, pois já tive esse problema, mas não lembro a fonte que usei.
Responder

Gostei + 0

12/04/2015

Erick

Courier New, certo?!
Precisa sim ser no ListBox, e eu estava usando desse jeito, só não sei como usar o comando for novamente para separar Quantidade de Preço Unitário, você não consegue dar uma ajuda para fazer com esse código, não seria mais simples? Obrigado!



procedure TFormVendas.Button1Click(Sender: TObject);
var
precoU, SubTotal:real;
ncarac, x, Quant:integer;
result:string;

begin
precoU:=strtocurr(Edit1.text);   
Quant := strtoint (ComboBox2.Text); 
Edit1.text := FloatToStrF(precoU,ffCurrency,7,2); 
Combobox2.Text := FloatToStr(Quant); 
ncarac:=length(ComboBox1.text); 
for x:=1 to 18 do   
begin
if x <= ncarac then   
result := result + copy(ComboBox1.text, x, 1)  
else
result := result + ' '; 
end;
Responder

Gostei + 0

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

Aceitar