ZueRa 0 Denunciar post Postado Janeiro 10, 2008 Código abaixo: procedure TFprincipal.Button11Click(Sender: TObject); var i:integer; for i := 0 to Minfo.Lines.Count -1 do begin Ltotal.Caption := Minfo.Lines[i]; end; erro: [Error] U_principal.pas(76): Declaration expected but 'FOR' found o que há de errado com meu FOR? Grato ;) Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Janeiro 10, 2008 Com o seu FOR nada, o problema esta na estrutura da sua procedure. Interprete a mensagem: "Declaração esperada mas 'FOR' encontrado", ou seja, ele esperava um comando, mas encontrou outro. Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo R Moura 0 Denunciar post Postado Janeiro 10, 2008 falta o begin e o end da procedure. Compartilhar este post Link para o post Compartilhar em outros sites
ZueRa 0 Denunciar post Postado Janeiro 10, 2008 Uhm, na estrutura da procedure? WOW Vou dar uma olhada. Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo R Moura 0 Denunciar post Postado Janeiro 10, 2008 como você só tem 1 linha de comando dentro do for, escreve sua rotina assim procedure TFprincipal.Button11Click(Sender: TObject); var i:integer; begin for i := 0 to Minfo.Lines.Count -1 do Ltotal.Caption := Minfo.Lines; end; Compartilhar este post Link para o post Compartilhar em outros sites
ZueRa 0 Denunciar post Postado Janeiro 10, 2008 como você só tem 1 linha de comando dentro do for, escreve sua rotina assim procedure TFprincipal.Button11Click(Sender: TObject); var i:integer; begin for i := 0 to Minfo.Lines.Count -1 do Ltotal.Caption := Minfo.Lines; end; Ah sim! Entendi, obrigado amigo. O Code ajudou, a explicação também. Grato! Mas, na verdade a função que ESTAVA (porque esta não funcionou) era fazer o seguinte: quando o usuário clica em TOTAL iria aparecer a SOMA dos valores do MEMO. Tentei fazer assim, com este código, mas, não deu certo. Haviam dois valores no Memo, assim dispostos: 12 12 mas quando cliquei em TOTAL, no lugar de aparecer 24, apareceu 12 o.O o que eu poderia fazer para sanar isto? Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Janeiro 10, 2008 Em que momento você somou os valores? Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo R Moura 0 Denunciar post Postado Janeiro 10, 2008 Chefia, ae o erro está na sua logica de programaçao... do jeito que está, vai mostrar sempre o ultimo valor do memo... faz assim procedure TFprincipal.Button11Click(Sender: TObject); var i:integer; vAux : Real; begin for i := 0 to Minfo.Lines.Count -1 do vAux := vAux + StrToFloat(mInfo.Lines[i]); Ltotal.Caption := FloatToStr(vAux); end; ve se funciona e da uma resposta Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Janeiro 10, 2008 Somente complementando o codigo do amigo Marcelo R Moura. Você deve inicializar a variavel com o valor 0 para não imprimir valores inesperados, ficando assim: var i:integer; vAux : Real; begin vAux:= 0; for i := 0 to Minfo.Lines.Count -1 do vAux := vAux + StrToFloat(mInfo.Lines); Ltotal.Caption := FloatToStr(vAux); Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo R Moura 0 Denunciar post Postado Janeiro 10, 2008 exato Rodrigo. Compartilhar este post Link para o post Compartilhar em outros sites
ZueRa 0 Denunciar post Postado Janeiro 10, 2008 Somente complementando o codigo do amigo Marcelo R Moura. Você deve inicializar a variavel com o valor 0 para não imprimir valores inesperados, ficando assim: var i:integer; vAux : Real; begin vAux:= 0; for i := 0 to Minfo.Lines.Count -1 do vAux := vAux + StrToFloat(mInfo.Lines); Ltotal.Caption := FloatToStr(vAux); Certo Rodrigo. Mas, no caso o "vAux:=0" ficaria após o for, pois antes há erro. Grato ;) Marcelo, o código deu certo sim. Obrigado por enquanto! Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo R Moura 0 Denunciar post Postado Janeiro 10, 2008 o vAux:= 0; está no lugar correto! Compartilhar este post Link para o post Compartilhar em outros sites
ZueRa 0 Denunciar post Postado Janeiro 10, 2008 o vAux:= 0; está no lugar correto! Eu testei ele do jeito que estava no code, deu erro. Então o coloquei dentro do for, deu certo. Dá uma testada pra tu conferir. Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Janeiro 10, 2008 Afe maria... E dentro do FOR ele fez o calculo corretamente? Antes do Delphi vem um pouquinho de Pascal e antes do Pascal um assunto essencial... Lógica de Programação. Boa sorte. Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo R Moura 0 Denunciar post Postado Janeiro 10, 2008 Chefia, impossivel dar certo com o vAux := 0 dentro do for, pois a casa passada do laço sua variavel será zerada e você vai perder seu valor acumulado!!!!! repito, tá certo do jeito que tá. Compartilhar este post Link para o post Compartilhar em outros sites
ZueRa 0 Denunciar post Postado Janeiro 10, 2008 Chefia, impossivel dar certo com o vAux := 0 dentro do for, pois a casa passada do laço sua variavel será zerada e você vai perder seu valor acumulado!!!!! repito, tá certo do jeito que tá. Aloc, então me desculpem. Mas deu erro se for fora do for, vou tentar resolver aqui. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites