For com Edit
19/03/2013
0
Pretendo criar a seguinte situação:
Gostaria de informar 5 valores e o sistema me apresentar a soma por exemplo, mas gostaria de usar o For to do, pois não gostaria de ter que colocar 5 edit no formulário.
Seria possível fazer isso?
David Sobral
Posts
19/03/2013
Douglas
no meu ponto de vista teria que colocar
os edits mesmo, pois você terá que informar os valores
para soma.
19/03/2013
Joel Rodrigues
Se você não quer colocar os cinco edits (o que acho simples, se forem só 5), vejo duas possibilidades simples:
1) Faz um for e em cada iteração você abre um inputbox pra receber o valor (e vai somando);
2) Faz um for e cria dinamicamente os edits;
Boa sorte.
20/03/2013
Douglas
já vi a criação de edits automáticos
achei um pouco complicado !
21/03/2013
Joel Rodrigues
21/03/2013
David Sobral
21/03/2013
Danillo Camargo
Boa tarde David. Tudo bem?
Segue sugestão:
procedure TForm1.Button1Click(Sender: TObject); var astValor: array [0 .. 4] of string; intContador: Integer; intSoma: Integer; begin if InputQuery('Somar valores', ['Valor 1', 'Valor 2', 'Valor 3', 'Valor 4', 'Valor 5'], astValor) then begin intSoma := 0; for intContador := 0 to 4 do if not(astValor[intContador] = EmptyStr) then intSoma := intSoma + StrToInt(astValor[intContador]); ShowMessage('Total: ' + IntToStr(intSoma)); end; end;
Espero ter ajudado,
Qualquer dúvida estou à disposição,
Atenciosamente,
21/03/2013
David Sobral
Pois estou pensando se tivesse 100 números ou mais por exemplo.
Atenciosamente,
David
22/03/2013
Danillo Camargo
Pois estou pensando se tivesse 100 números ou mais por exemplo.
Atenciosamente,
David
Bom dia David. Tudo bem?
Rapaz, não conheço nenhuma rotina do delphi para esse caso. Acho que você teria que criar uma rotina semelhante acrescentando o botão.
Sugestão: criar rotina semelhante ao "InputQuery" e, ao invés de criar vários edits, criar um edit, um botão e uma label. Quando digitar no edit e clicar no botão, ele executa a soma e exibe no label. Assim a quantidade de números fica ilimitada.
Qualquer dúvida estou à disposição,
Atenciosamente,
22/03/2013
Joel Rodrigues
var total, i: Integer; temp : String; const quantidade = 5; begin total := 0; for i := 1 to quantidade do begin if InputQuery('Digite o valor', '', temp) then begin total := total + StrToInt(temp); end; end; ShowMessage('Total: ' + IntToStr(total)); end;
Criei uma constante "quantidade" que você pode definir como 5, 10, 100, etc, dependendo da quantidade de valores que você precisa somar.
Então serão mostrados vários inputboxes e o total será incrementado a cada repetição do laço. Ao fim, exibimos o total.
Veja se é isso.
Boa sorte.
22/03/2013
David Sobral
Joel
Era exatamente isso que estava precisando.
Valeu mesmo pela ajuda.
Um forte abraço,
David
25/03/2013
Douglas
confesso-te, que não sabia fazer com InputQuery.
muito boa resposta.
25/03/2013
Joel Rodrigues
Agradeço também a participação dos colegas.
Um abraço a todos.
Neste caso, vou marcar este tópico como Concluído.
Clique aqui para fazer login e interagir na Comunidade :)