Fórum Campo valor igual aos bancos #9258
11/09/2009
0
Augusto Leao
Curtir tópico
+ 0Posts
11/09/2009
Rodrigo Mourão
Deixa ver se entendi, você quer formatar conforme vai digitando? Seria isso ?
Pois temos a propriedade mask ou até mesmo um formatfloat.
Fico no aguardo !!
ABS!
Gostei + 0
11/09/2009
Augusto Leao
Gostei + 0
14/09/2009
Rodrigo Mourão
Eu entrei no Banco do Brasil e peguei o codigo JvaScript que vai aquilo. Vou tentar convertê-lo para Delphi para tentar o mesmo efeito, não garanto o sucesso mas vamos tentar.
Peço que aguarde o envio do código.
Abs!!
P.S.: Quanto a dúvida do CDS peço que abra um novo chamado, cada dúvida deve ser respondida em um chamado exclusivo.
Gostei + 0
16/09/2009
Rodrigo Mourão
Não ficou muito bonita não mas funciona. Selecione o Edit que vc quer aplicar a formatação e no evento OnKeyUp coloque o codigo abaixo:
var
s: String;
begin
if (Key in [96..107]) or (Key in [48..57]) then
begin
S := Edit1.Text;
S := StringReplace(S,',','',[rfReplaceAll]);
S := StringReplace(S,'.','',[rfReplaceAll]);
if Length(s) = 3 then
begin
s := Copy(s,1,1)+','+Copy(S,2);
Edit1.Text := S;
Edit1.SelStart := Length(S);
end
else
if (Length(s) > 3) and (Length(s) < 6) then
begin
s := Copy(s,1,length(s)-2)+','+Copy(S,length(s)-1);
Edit1.Text := s;
Edit1.SelStart := Length(S);
end
else
if (Length(s) >= 6) and (Length(s) < 9) then
begin
s := Copy(s,1,length(s)-5)+'.'+Copy(s,length(s)-4,3)+','+Copy(S,length(s)-1);
Edit1.Text := s;
Edit1.SelStart := Length(S);
end
else
if (Length(s) >= 9) and (Length(s) < 12) then
begin
s := Copy(s,1,length(s)-8)+'.'+Copy(s,length(s)-7,3)+'.'+Copy(s,length(s)-4,3)+','+Copy(S,length(s)-1);
Edit1.Text := s;
Edit1.SelStart := Length(S);
end
else
if (Length(s) >= 12) and (Length(s) < 15) then
begin
s := Copy(s,1,length(s)-11)+'.'+Copy(s,length(s)-10,3)+'.'+Copy(s,length(s)-7,3)+'.'+Copy(s,length(s)-4,3)+','+Copy(S,length(s)-1);
Edit1.Text := s;
Edit1.SelStart := Length(S);
end;
end;
Ele formata ate Bilhão, ou seja, 125.656.698.874,20 caso queria comtemplar mais digitos e so alterar a rotina e colocar mais um if.
Espero ter ajudado.
Abs!!
Gostei + 0
18/09/2009
Augusto Leao
Gostei + 0
18/09/2009
Rodrigo Mourão
abs!!
Gostei + 0
18/09/2009
Augusto Leao
Gostei + 0
24/09/2009
Augusto Leao
Gostei + 0
28/09/2009
Rodrigo Mourão
Não digite as virgulas. Digite 100000 para ele formatar para 1000,00
Abs!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)