Fórum Else esta errado? #392661
16/12/2010
0
if edit9.Text > edit8.Text then
begin
Edit10.text:=FloatToStr(StrToFloat(Edit9.text) - StrToFloat(Edit8.text))
else
edit10.Text:=0
end
end;
Pessoal onde esta o erro q o else fica sublinhado
Quero que quando edit 9 for > q edit 8 faço caso nao seja ele deixe o valor de edit 10 = a 0
Nesse meu caso edit 10 e um troco
Adilson Soares
Curtir tópico
+ 0Posts
16/12/2010
Wesley Yamazack
Como você tem apenas uma linha de comando para ser executada no if, e depois já vem o else
if edit1.Text > edit2.Text then Edit3.text:= FloatToStr(StrToFloat(edit1.text) - StrToFloat(edit2.text)) else Edit3.Text:=0;
Você tinha colocado um Begin, onde e para isso precisaria de um end, antes do else, veja um exemplo para quando você tiver que executar mais de uma linha para um if ou para um else.
if edit1.Text > edit2.Text then begin Edit3.text:= FloatToStr(StrToFloat(edit1.text) - StrToFloat(edit2.text)) . . . . end else begin Edit3.Text:=0; . . . . end;
Um abraço
Wesley Y.
wyamazack@hotmail.com
Gostei + 0
16/12/2010
Adilson Soares
begin
if edit9.Text > edit8.Text then
begin
Edit10.text:=FloatToStr(StrToFloat(Edit9.text) - StrToFloat(Edit8.text))
end
else
edit10.Text:=0;
begin
end;
end;
é assim correto?
deu erro no edit 10 assim:
[DCC Error] U_AgendamentoPrincipal.pas(662): E2010 Incompatible types: 'string' and 'Integer'
Gostei + 0
16/12/2010
Wesley Yamazack
Veja como seria :
procedure TForm2.FormCreate(Sender: TObject); begin if edit9.Text > edit8.Text then Edit10.text:=FloatToStr(StrToFloat(Edit9.text) - StrToFloat(Edit8.text)) else edit10.Text:=0; end; procedure TForm2.FormCreate(Sender: TObject); begin if edit9.Text > edit8.Text then begin Edit10.text:=FloatToStr(StrToFloat(Edit9.text) - StrToFloat(Edit8.text)); //Programe aqui outras linhas caso seja necessário, veja que a ultima linha antes do Else não tem ";" end else begin edit10.Text:=0; //Programe aqui outras linhas caso seja necessário end; end;
Att,
Wesley Y
wyamazack@hotmail.com
Gostei + 0
16/12/2010
Emerson Nascimento
procedure TForm2.FormCreate(Sender: TObject);
begin
if edit9.Text > edit8.Text then
Edit10.text:=FloatToStr(StrToFloat(Edit9.text) - StrToFloat(Edit8.text))
else
edit10.Text:='0';
end;
no exemplo acima há somente 1 comando para cada condição:
- se o conteúdo do edit9 for maior que o conteúdo do edit8, coloca o conteudo de uma operação no edit10, caso contrário o edit10 passa a valer '0'.
agora se você quiser fazer a conta e mostrar uma mensagem, dentro de uma das condições, você envolve os comandos com begin..end.
procedure TForm2.FormCreate(Sender: TObject);
begin
if edit9.Text > edit8.Text then
Edit10.text:=FloatToStr(StrToFloat(Edit9.text) - StrToFloat(Edit8.text))
else
begin
edit10.Text:='0';
ShowMessage('O segundo valor é menor que o primeiro!');
end;
end;
note que a primeira condição resulta em apenas um comando - a soma - por isso não precisa (não precisa, mas pode) estar num begin..end. já na segunda condição são 2 comandos e isso obriga o uso de begin..end.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)