Multiplicação indo e voltando
22/04/2020
0
Boa noite.
Tenho três DBEdit's
DBEditQt_min
DBEditQt_max
DBEditTotal
No evento Onexit do DBEditQt_min digitei o código:
O mesmo código coloquei no evento OnExite do DBEditQt_max
Seu eu não digitar nada no DBEditQt_min e clicar na tecla [Enter] me retorna o seguinte erro:
"is not a valid floating point value".
E vai pro próximo DBEditQt_max. Se eu clicar nas teclas [Alt+Tab] da a mesma mensagem.
E se eu digito algum numero no DBEditQt_min e clico na tecla [Enter] para ir pro próximo DBEditQt_max da a mesma mensagem. Mais se eu preencho o campo DBEditQt_max, para de dar o erro mesmo eu indo pra frente e pra traz nesses dois campos clicando repetidamente as teclas [Enter] [Alt+Tab] [Enter] [Alt+Tab] [Enter] [Alt+Tab]
Gostaria da vossa ajuda para não ficar aparecendo essa mensagem.
Tenho três DBEdit's
DBEditQt_min
DBEditQt_max
DBEditTotal
No evento Onexit do DBEditQt_min digitei o código:
procedure TfrmPedidos.DBEditQt_minExit(Sender: TObject); //multiplicar var v1, v2, resultadoTOTAL: Real; begin v1:=StrToFloat(DBEditQt_min.Text); v2:=StrToFloat(DBEditQt_max.Text); resultadoTOTAL:= v2*v1; DBEditTOTAL.Text:=FloatToStr(resultadoTOTAL); end;
O mesmo código coloquei no evento OnExite do DBEditQt_max
procedure TfrmPedidos.DBEditQt_maxExit(Sender: TObject); //multiplicar var v1, v2, resultadoTOTAL: Real; begin v1:=StrToFloat(DBEditQt_min.Text); v2:=StrToFloat(DBEditQt_max.Text); resultadoTOTAL:= v2*v1; DBEditTOTAL.Text:=FloatToStr(resultadoTOTAL); end;
Seu eu não digitar nada no DBEditQt_min e clicar na tecla [Enter] me retorna o seguinte erro:
"is not a valid floating point value".
E vai pro próximo DBEditQt_max. Se eu clicar nas teclas [Alt+Tab] da a mesma mensagem.
E se eu digito algum numero no DBEditQt_min e clico na tecla [Enter] para ir pro próximo DBEditQt_max da a mesma mensagem. Mais se eu preencho o campo DBEditQt_max, para de dar o erro mesmo eu indo pra frente e pra traz nesses dois campos clicando repetidamente as teclas [Enter] [Alt+Tab] [Enter] [Alt+Tab] [Enter] [Alt+Tab]
Gostaria da vossa ajuda para não ficar aparecendo essa mensagem.
Rubens Pena
Curtir tópico
+ 0
Responder
Post mais votado
22/04/2020
use a função StrToFloatDef() que, caso não consiga converter o texto em valor, utiliza do segundo parâmetro como o valor default.
e, no lugar de ter duas procedures iguais, aponte o OnExit dos dois componentes para uma mesma procedure.
procedure TfrmPedidos.DBEditQt_maxExit(Sender: TObject); //multiplicar var v1, v2, resultadoTOTAL: Real; begin v1 := StrToFloatDef(DBEditQt_min.Text,0); v2 := StrToFloatDef(DBEditQt_max.Text,0); resultadoTOTAL:= v2*v1; DBEditTOTAL.Text:=FloatToStr(resultadoTOTAL); end;
e, no lugar de ter duas procedures iguais, aponte o OnExit dos dois componentes para uma mesma procedure.
Emerson Nascimento
Responder
Mais Posts
23/04/2020
Rubens Pena
use a função StrToFloatDef() que, caso não consiga converter o texto em valor, utiliza do segundo parâmetro como o valor default.
e, no lugar de ter duas procedures iguais, aponte o OnExit dos dois componentes para uma mesma procedure.
Boa tarde.procedure TfrmPedidos.DBEditQt_maxExit(Sender: TObject); //multiplicar var v1, v2, resultadoTOTAL: Real; begin v1 := StrToFloatDef(DBEditQt_min.Text,0); v2 := StrToFloatDef(DBEditQt_max.Text,0); resultadoTOTAL:= v2*v1; DBEditTOTAL.Text:=FloatToStr(resultadoTOTAL); end;
e, no lugar de ter duas procedures iguais, aponte o OnExit dos dois componentes para uma mesma procedure.
Maravilha deu certo. Obrigado.
Responder
Clique aqui para fazer login e interagir na Comunidade :)