Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ZueRa

O que há de errado...

Recommended Posts

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

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

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.