moeda como vocês fazem... ?

Delphi

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


Lynx

Lynx

Curtidas 0

Melhor post

Marcusbraga

Marcusbraga

13/07/2005

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


GOSTEI 2

Mais Respostas

Araujojunior

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

Lynx

12/07/2005

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


GOSTEI 0
Lynx

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


GOSTEI 0
Silviogs

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


GOSTEI 0
Lynx

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...


GOSTEI 0
Michael

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:

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

Lynx

12/07/2005

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


GOSTEI 0
Lynx

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 ?


GOSTEI 0
Silviogs

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


GOSTEI 0
Lynx

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


GOSTEI 0
Marcusbraga

Marcusbraga

12/07/2005

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


GOSTEI 0
Lynx

Lynx

12/07/2005

muito obrigado!
realmente assim fica ótimo.

valeu


GOSTEI 0
POSTAR