moeda como vocês fazem... ?
Boa Noite.
Já vi muitas formas diferentes para valores $.
Vocês editam os valores (R$ Reais) no exit do campo ou em tempo de execução ?
onexit
edtValor.Text:= FormatFloat(´0.00´, StrToFloat(edtValor.Text));
desta maneira não funciona os centavos... (0,50).
Gostaria da opinião de vocês, quais as melhores maneiras para editar valores, de edits... os melhores métodos, ou seja a maneira correta.
obrigada
Já vi muitas formas diferentes para valores $.
Vocês editam os valores (R$ Reais) no exit do campo ou em tempo de execução ?
onexit
edtValor.Text:= FormatFloat(´0.00´, StrToFloat(edtValor.Text));
desta maneira não funciona os centavos... (0,50).
Gostaria da opinião de vocês, quais as melhores maneiras para editar valores, de edits... os melhores métodos, ou seja a maneira correta.
obrigada
Lynx
Curtidas 0
Melhor post
Marcusbraga
13/07/2005
Eu uso assim
edtValor.Text:= FormatFloat(´#,0.00´)
edtValor.Text:= FormatFloat(´#,0.00´)
GOSTEI 2
Mais Respostas
Araujojunior
12/07/2005
Boa Noite.
Já vi muitas formas diferentes para valores $.
Vocês editam os valores (R$ Reais) no exit do campo ou em tempo de execução ?
onexit
edtValor.Text:= FormatFloat(´0.00´, StrToFloat(edtValor.Text));
desta maneira não funciona os centavos... (0,50).
Gostaria da opinião de vocês, quais as melhores maneiras para editar valores, de edits... os melhores métodos, ou seja a maneira correta.
obrigada
Se vc quiser tb, use o componente CurrencyEdit, ele vem junto com o RxLib e sua principal característica é assumir o valor na forma : R$ 0,00
O valor vai ser informado na propriedade Value. :wink:
GOSTEI 1
Lynx
12/07/2005
não gostaria de usar outros componentes.
porque se precisar mudar a versao da IDE, vou depender de componente.
porque se precisar mudar a versao da IDE, vou depender de componente.
GOSTEI 0
Lynx
12/07/2005
eu faço assim :
edtValor.Text:= FormatFloat(´0.00´, (StrToFloat(edtValor.Text)));
e para mostrar:
edtValor.Text:= FormatFloat(´0.00´, (StrToFloat(FieldByname(´VALORUNITARIO´).AsString)));
vocês acham certo desta maneira ?
o valor fica assim 35000,00 para 35 mil etc..
ogrigado
edtValor.Text:= FormatFloat(´0.00´, (StrToFloat(edtValor.Text)));
e para mostrar:
edtValor.Text:= FormatFloat(´0.00´, (StrToFloat(FieldByname(´VALORUNITARIO´).AsString)));
vocês acham certo desta maneira ?
o valor fica assim 35000,00 para 35 mil etc..
ogrigado
GOSTEI 0
Silviogs
12/07/2005
Olá amigos
todas as formatacões do delphi usam as configurações internacionais do windows, caso esta configurado para japonês todas as formatações irão obedecer esta configuração.
caso seja TDBEdit usem esta forma
depois que abrirem a tabela ou query faça
QryEstoqueestatual.DisplayFormat := ´,#0.000´;
para valores de unidade, metros, kg etc.
QryEstoquealiqicms.DisplayFormat := ´¬ 0.00´;
para valores percentuais.
QryEstoquecustomedio.DisplayFormat := ´R$ ,0.00´;
para valores monetários.
Obs: voce pode configurar manualmente pelo sistema usando estas variáveis:
var CurrencyString: string;
var CurrencyFormat: Byte;
var NegCurrFormat: Byte;
var ThousandSeparator: Char;
var DecimalSeparator: Char;
var CurrencyDecimals: Byte;
var DateSeparator: Char;
var ShortDateFormat: string;
var LongDateFormat: string;
var TimeSeparator: Char;
var TimeAMString: string;
var TimePMString: string;
var ShortTimeFormat: string;
var LongTimeFormat: string;
var ShortMonthNames: array[1..12] of string;
var LongMonthNames: array[1..12] of string;
var ShortDayNames: array[1..7] of string;
var LongDayNames: array[1..7] of string;
var SysLocale: TSysLocale;
var EraNames: array[1..7] of string;
var EraYearOffsets: array[1..7] of Integer;
var TwoDigitYearCenturyWindow: Word = 50;
var ListSeparator: Char;
EX:
ShortDateFormat := ´dd/mm/yyyy´;
Atenciosamente
Silvio Guedes
todas as formatacões do delphi usam as configurações internacionais do windows, caso esta configurado para japonês todas as formatações irão obedecer esta configuração.
caso seja TDBEdit usem esta forma
depois que abrirem a tabela ou query faça
QryEstoqueestatual.DisplayFormat := ´,#0.000´;
para valores de unidade, metros, kg etc.
QryEstoquealiqicms.DisplayFormat := ´¬ 0.00´;
para valores percentuais.
QryEstoquecustomedio.DisplayFormat := ´R$ ,0.00´;
para valores monetários.
Obs: voce pode configurar manualmente pelo sistema usando estas variáveis:
var CurrencyString: string;
var CurrencyFormat: Byte;
var NegCurrFormat: Byte;
var ThousandSeparator: Char;
var DecimalSeparator: Char;
var CurrencyDecimals: Byte;
var DateSeparator: Char;
var ShortDateFormat: string;
var LongDateFormat: string;
var TimeSeparator: Char;
var TimeAMString: string;
var TimePMString: string;
var ShortTimeFormat: string;
var LongTimeFormat: string;
var ShortMonthNames: array[1..12] of string;
var LongMonthNames: array[1..12] of string;
var ShortDayNames: array[1..7] of string;
var LongDayNames: array[1..7] of string;
var SysLocale: TSysLocale;
var EraNames: array[1..7] of string;
var EraYearOffsets: array[1..7] of Integer;
var TwoDigitYearCenturyWindow: Word = 50;
var ListSeparator: Char;
EX:
ShortDateFormat := ´dd/mm/yyyy´;
Atenciosamente
Silvio Guedes
GOSTEI 0
Lynx
12/07/2005
mas o correto precisa ser com ponto.
exemplo 35.000,00
4.120,6000
mas o campo float, na base n pode receber ponto...
exemplo 35.000,00
4.120,6000
mas o campo float, na base n pode receber ponto...
GOSTEI 0
Michael
12/07/2005
Olá colega!
Use a função [b:d8f266b418]FloatToStrF[/b:d8f266b418]. Ele permite que vc converta um valor de ponto flutuante qualquer para string, formatando a saída em vários formatos diferentes. Para valores monetários use por exemplo:
Isso irá gerar: [b:d8f266b418]R$ 1,99[/b:d8f266b418]. Observe que a função obedece às variáveis globais [b:d8f266b418]CurrencyString[/b:d8f266b418], [b:d8f266b418]CurrencyFormat[/b:d8f266b418], [b:d8f266b418]NegCurrFormat[/b:d8f266b418], [b:d8f266b418]ThousandSeparator [/b:d8f266b418]e [b:d8f266b418]DecimalSeparator[/b:d8f266b418]. Vc não precisa se preocupar com nada.
O [b:d8f266b418]10[/b:d8f266b418] é o valor da precisão da conversão e [b:d8f266b418]2[/b:d8f266b418] o número de dígitos depois da vírgula. Dê uma olhada no help do Delphi para mais detalhes.
[]´s
Use a função [b:d8f266b418]FloatToStrF[/b:d8f266b418]. Ele permite que vc converta um valor de ponto flutuante qualquer para string, formatando a saída em vários formatos diferentes. Para valores monetários use por exemplo:
FloatToStrF(1.99, ffGeneral, 10, 2);
Isso irá gerar: [b:d8f266b418]R$ 1,99[/b:d8f266b418]. Observe que a função obedece às variáveis globais [b:d8f266b418]CurrencyString[/b:d8f266b418], [b:d8f266b418]CurrencyFormat[/b:d8f266b418], [b:d8f266b418]NegCurrFormat[/b:d8f266b418], [b:d8f266b418]ThousandSeparator [/b:d8f266b418]e [b:d8f266b418]DecimalSeparator[/b:d8f266b418]. Vc não precisa se preocupar com nada.
O [b:d8f266b418]10[/b:d8f266b418] é o valor da precisão da conversão e [b:d8f266b418]2[/b:d8f266b418] o número de dígitos depois da vírgula. Dê uma olhada no help do Delphi para mais detalhes.
[]´s
GOSTEI 0
Lynx
12/07/2005
ah ...
na hora de digitar pode ser com ponto etc.. mas na hora de gravar eu utilizo isso então.
na hora de digitar pode ser com ponto etc.. mas na hora de gravar eu utilizo isso então.
GOSTEI 0
Lynx
12/07/2005
assim.
edtValor.Text:= FormatFloat(´,0.00´, (StrToFloat(edtValor.Text)));
vai voltar um valor 10.000,00 mas na hora de gravar no fb n pode ter o ponto...
como ficaria neste caso ?
edtValor.Text:= FormatFloat(´,0.00´, (StrToFloat(edtValor.Text)));
vai voltar um valor 10.000,00 mas na hora de gravar no fb n pode ter o ponto...
como ficaria neste caso ?
GOSTEI 0
Silviogs
12/07/2005
Caro amigo
como já foi explicado o displayformat é apenas para exibição, quando for efetuado o Post o campo é gravado sem formatação.
Na hora de consultar o campo será exbido com a formatação.
Silvio Guedes
como já foi explicado o displayformat é apenas para exibição, quando for efetuado o Post o campo é gravado sem formatação.
Na hora de consultar o campo será exbido com a formatação.
Silvio Guedes
GOSTEI 0
Lynx
12/07/2005
eu sei que é para formatar.
edtValor.Text:= FormatFloat(´,0.00´, (StrToFloat(edtValor.Text)))
formata assim 35.000,00 mas na hora de gravar ?
como utilizo está função ?
FloatToStrF();
obrigado
edtValor.Text:= FormatFloat(´,0.00´, (StrToFloat(edtValor.Text)))
formata assim 35.000,00 mas na hora de gravar ?
como utilizo está função ?
FloatToStrF();
obrigado
GOSTEI 0
Marcusbraga
12/07/2005
faça o seguinte
crie uma unit
no edit que deseja formatar faça a formatação que quizer
voce pode usar
ficaria 35.000,00
ou
ficaria R$ 35.000,00
no botão gravar
declare uma variavel tipo
A função texttocurr(retira todos os caracteres que não seja ´numero´ e ´,´);
o resultado seria o valor sem formatação e voce gravaria o converte
Obs:
Meus agradecimentos para Aroldo Zanela que me enviou essa função me serve muito e espero que sirva para Voce tambem
crie uma unit
unit Uconverte; interface function TextToCurr(Texto: String):Currency; implementation uses Windows, Messages,Dialogs, SysUtils; function TextToCurr(Texto: String):Currency; var nI: Integer; TextoLimpo: String; begin TextoLimpo := ´´; For nI := 1 to Length(Texto) do begin if Texto[nI] in [´0´..´9´,´,´] then TextoLimpo := TextoLimpo + Texto[nI]; end; Result := StrToFloat(TextoLimpo); end;
no edit que deseja formatar faça a formatação que quizer
voce pode usar
edit.text := formatfloat(´,0.00, strtofloat(edit.text));
ficaria 35.000,00
ou
edit.text := formatfloat(´R$ ,0.00, strtofloat(edit.text));
ficaria R$ 35.000,00
no botão gravar
declare uma variavel tipo
var converte : currency;
A função texttocurr(retira todos os caracteres que não seja ´numero´ e ´,´);
converte := texttocurr(edit.text);
o resultado seria o valor sem formatação e voce gravaria o converte
Obs:
Meus agradecimentos para Aroldo Zanela que me enviou essa função me serve muito e espero que sirva para Voce tambem
GOSTEI 0
Lynx
12/07/2005
muito obrigado!
realmente assim fica ótimo.
valeu
realmente assim fica ótimo.
valeu
GOSTEI 0