Else esta errado?
begin
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
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
Curtidas 0
Respostas
Wesley Yamazack
16/12/2010
Olá meu caro,
Como você tem apenas uma linha de comando para ser executada no if, e depois já vem o else
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.
Um abraço
Wesley Y.
wyamazack@hotmail.com
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
Adilson Soares
16/12/2010
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
Wesley Yamazack
16/12/2010
Olá meu caro,
Veja como seria :
Att,
Wesley Y
wyamazack@hotmail.com
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
Emerson Nascimento
16/12/2010
sempre que você precisar executar mais de um comando, envolva-os num begin..end.
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.
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