Fórum moeda como vocês fazem... ? #287848

12/07/2005

0

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


Lynx

Lynx

Responder

Post mais votado

13/07/2005

Eu uso assim
edtValor.Text:= FormatFloat(´#,0.00´)


Marcusbraga

Marcusbraga
Responder

Gostei + 2

Mais Posts

13/07/2005

Araujojunior

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:


Responder

Gostei + 1

13/07/2005

Lynx

não gostaria de usar outros componentes.
porque se precisar mudar a versao da IDE, vou depender de componente.


Responder

Gostei + 0

13/07/2005

Lynx

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


Responder

Gostei + 0

13/07/2005

Silviogs

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


Responder

Gostei + 0

13/07/2005

Lynx

mas o correto precisa ser com ponto.
exemplo 35.000,00

4.120,6000

mas o campo float, na base n pode receber ponto...


Responder

Gostei + 0

13/07/2005

Michael

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:

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


Responder

Gostei + 0

13/07/2005

Lynx

ah ...
na hora de digitar pode ser com ponto etc.. mas na hora de gravar eu utilizo isso então.


Responder

Gostei + 0

13/07/2005

Lynx

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 ?


Responder

Gostei + 0

13/07/2005

Silviogs

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


Responder

Gostei + 0

13/07/2005

Lynx

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


Responder

Gostei + 0

13/07/2005

Marcusbraga

faça o seguinte

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


Responder

Gostei + 0

13/07/2005

Lynx

muito obrigado!
realmente assim fica ótimo.

valeu


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar