Formatação decimal
17/04/2013
0
Salário (DBEdit2) = 1234,00
Vlr. Hora Trabalhada (DBEdit3).
No evento OnEnter do DBEdit3 entrei com o seguinte código:
procedure TForm1.DBEdit3Enter(Sender: TObject);
var
valor: double;
begin
valor := StrtoFloat(Dbedit2.text);
Dbedit3.text := FloattoStr(valor / 220);
end;
No evento OnExit do DBEdit3 eu usei o código: DBEdit3.Text:= FormatFloat('00000.00',StrToInt(DBEdit3.Text))
Usei tudo isso mas não está dando certo. Sempre vem uma mensagem dizendo que o valor não é flutuante.
Como devo proceder? Alguem pode me ajudar?
Renildo Antonio
Posts
17/04/2013
Renildo Antonio
Salário (DBEdit2) = 1234,00
Vlr. Hora Trabalhada (DBEdit3).
No evento OnEnter do DBEdit3 entrei com o seguinte código:
procedure TForm1.DBEdit3Enter(Sender: TObject);
var
valor: double;
begin
valor := StrtoFloat(Dbedit2.text);
Dbedit3.text := FloattoStr(valor / 220);
end;
No evento OnExit do DBEdit3 eu usei o código: DBEdit3.Text:= FormatFloat('00000.00',StrToInt(DBEdit3.Text))
Usei tudo isso mas não está dando certo. Sempre vem uma mensagem dizendo que o valor não é flutuante.
Como devo proceder? Alguem pode me ajudar?
Eu estou usando um ADOTable/Access.
17/04/2013
Joel Rodrigues
DBEdit3.Text := FormatFloat('#,##0.00', StrToFloat(DBEdit3.Text));
17/04/2013
Renildo Antonio
Até 999,99 vai muito bem, passou dai não funciona.
já usei vários exemplo, mas nada até agora.
Um abraço.
17/04/2013
Joel Rodrigues
17/04/2013
Dirceu Morais
Até 999,99 vai muito bem, passou dai não funciona.
já usei vários exemplo, mas nada até agora.
Um abraço.
O Dbedit esta sendo passado como String 1245,00 ele deverá ser passado como Float 1245.00.
17/04/2013
Dirceu Morais
Até 999,99 vai muito bem, passou dai não funciona.
já usei vários exemplo, mas nada até agora.
Um abraço.
O Dbedit esta sendo passado como String 1245,00 ele deverá ser passado como Float 1245.00.
18/04/2013
Joel Rodrigues
1234
1234,00
1224.00
18/04/2013
Renildo Antonio
De qualquer forma que digito 1234 dá errado. Qualquer número acima de mil dá erro.
No meu projeto o valor que tenho em DBEdit2 tem que ser dividido por 220 e o resultado da divisão tem que sair em DBEdit 3.
Ou seja, 1234 / 220 = 5,6090909090909090909090909090909
Eu preciso que 1234 fique assim: 1.234,00 (DBEdit2), e
5,6090909090909090909090909090909 tem que ficar assim: 5,60. Somente com dois dígitos depois da vírgula.
No meu banco de dados (Access) os campos estão como texto.
Gente me passa um código que me ajude a levar o meu projeto adiante.
18/04/2013
Joel Rodrigues
18/04/2013
Renildo Antonio
Meu Deus! O que será que está acontecendo então!?
Será que seria pedir muito eu pedir para você me passar o código completo que você usou? Quem sabe assim eu possa ver o que está ocorrendo aqui.
Antecipado agradeço.
18/04/2013
Joel Rodrigues
18/04/2013
Renildo Antonio
Também fiz e deu certo. Isso quando eu não uso a formula de divisão, quando não uso nenhuma operação aritmética. Se uso ai o trem bagunça tudo.
Eu preciso que tanto BDEdit2 e BDEdit3 tenha somente duas casas decimais. Repito, quando não faço operação aritmética tudo funciona, mas quando uso ai ja viu.
==> Em BDEdit2 eu coloquei assim:
procedure TForm2.DBEdit2Exit(Sender: TObject);
begin
DBEdit2.Text := FormatFloat('#,##0.00', StrToFloat(DBEdit3.Text));
end;
==> Em DBEdit3 eu coloquei assim:
procedure TForm2.DBEdit3Enter(Sender: TObject);
var m1: real;
begin
m1 := StrtoFloat(Dbedit2.text);
Dbedit3.text := FloatToStr(m1 / 220);
end;
Ou seja, onde estou errando?
18/04/2013
Joel Rodrigues
Tá errado aí, não?
18/04/2013
Joel Rodrigues
Se for, coloque o seguinte no evento OnExit do DBEdit2:
var m1: real; begin m1 := StrtoFloat(DBEdit2.text); DBEdit2.text := FormatFloat('#,##0.00', m1);//formata o DBEdit2 DBEdit3.text := FormatFloat('#,##0.00', m1 / 220);//formata o DBEdit3
Clique aqui para fazer login e interagir na Comunidade :)