belo Posted February 12, 2013 Share Posted February 12, 2013 How do I change the decimal points to commas in a field type numeric (float)? Example VCL: procedure TFrmCadNotalFiscal.UniDBEdit1KeyPress(Sender: TObject; var Key: Char); begin if Key = '.' then Key := DecimalSeparator; // ',' end; Does anyone have any concrete example of how to solve these problems with viewing and editing numeric fields? Masks such as: # # #, # # #, # #0.00 do not work for editing WebMode. Any solution? Quote Link to comment Share on other sites More sharing options...
Marlon Nardi Posted February 13, 2013 Share Posted February 13, 2013 Bom dia Eduardo eu utilizo uma função para isso: Obs: Isso Para o Banco MYSQL No evento OnExit: FormataValor(TuniEdit1.Text); function FormataValor(edit:TuniEdit):String; var s : string; v : double; I : integer; begin try if edit.Text = EmptyStr then edit.Text := '0'; {obter o texto do edit, SEM o ponto decimal} s := ''; for I := 1 to length(edit.Text) do if (edit.Text[I] in ['0'..'9',',']) then s := s + edit.Text[I]; if s = EmptyStr then s := '0'; {fazer com que o conteúdo do edit apresente 2 casas decimais} v := strtofloat(s); {Formata o valor de (V) para aceitar valores do tipo 0,10} edit.Text := FormatFloat('0.00',v); edit.Color := clWhite; except on e: exception do begin ShowMessage('Este Campo só é permitido números.'); edit.Text := EmptyStr; edit.Color := clYellow; edit.SetFocus; end; end; Quote Link to comment Share on other sites More sharing options...
belo Posted February 13, 2013 Author Share Posted February 13, 2013 Olá Marlon! Aqui não funcionou. Ao chamar FormataValor(UniEdit1.Text) dá o erro: E2010 Incompatible Types: 'TUniEdit' and 'TCaption' Alterei para FormataValor(UniEdit1) e passou, mas não está formatando: Se por exemplo faço: 100,50 retorna 10050,00 O que pode ser? Outra coisa, se for utilizar TUniDBEdit com campo Float dá o erro: is not a Valid BCD Value Obrigado por ajudar. Quote Link to comment Share on other sites More sharing options...
Marlon Nardi Posted February 15, 2013 Share Posted February 15, 2013 Referente ao Erro: "E2010 Incompatible Types: 'TUniEdit' and 'TCaption'" voce deve apenas colocar o "Tuniedit1" sem o Caption ou Text. Ex: FormataValor(Uniedit1); "se for utilizar TUniDBEdit" quando voce tem TuniDBEdit, voce deve utilizar da seguinte forma: FormataValor(TUniEdit(UNIDBEDTI1)); Att, Marlon Nardi Quote Link to comment Share on other sites More sharing options...
belo Posted February 21, 2013 Author Share Posted February 21, 2013 Referente ao Erro: "E2010 Incompatible Types: 'TUniEdit' and 'TCaption'" voce deve apenas colocar o "Tuniedit1" sem o Caption ou Text. Ex: FormataValor(Uniedit1); "se for utilizar TUniDBEdit" quando voce tem TuniDBEdit, voce deve utilizar da seguinte forma: FormataValor(TUniEdit(UNIDBEDTI1)); Att, Marlon Nardi I still have the same problem (Continuo com o mesmo problema). Any other tips? (Alguma outra dica?) Quote Link to comment Share on other sites More sharing options...
rencarnacion Posted February 21, 2013 Share Posted February 21, 2013 Englishi Please !!! Quote Link to comment Share on other sites More sharing options...
belo Posted February 21, 2013 Author Share Posted February 21, 2013 Englishi Please !!! I still can not solve the problem with formatting numeric fields using UniDBEdit. Someone else can help? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.