Valor por extenso

Delphi

27/02/2003

Oi pessoal

Eu uso um componente que retorna o ´valor por extenso´ de um valor. Só que esse componente era p/ Delphi 5 e agora que mudei p/ Delphi 7 ele não funciona mais :( . Alguém tem um componente desses por ai???


Obrigada!!!

[]´s


Renata

Renata

Curtidas 0

Respostas

Marcelo

Marcelo

27/02/2003

olha, um componente eu nao tenho, mas posso te dizer onde vc acha uma funcao que faca isso pra vc,,, no proprio clubedelphi tem um programa ou apostila, nao me lembro muito bem, mas tem algo, que vai te ensinar a fazer essa rotina!

Um abraco,
Marcelo.


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

27/02/2003

Function Extenso( const Valor:LongInt): String;
type
     asMilhar = array[0..4,1..2] of string[9] ;
const
     aMil : asMilhar = ( ( ´´        , ´´          )  ,
                         ( ´ Mil´    , ´ Mil´      )  ,
                         ( ´ Milhão´ , ´ Milhões´  )  ,
                         ( ´ Bilhão´ , ´ Bilhões´  )  ,
                         ( ´ Trilhão´, ´ Trilhões´ ) );
var
     Numero  : LongInt ;
     nAux    : LongInt ;
     sNumero : string  ;
     m       : integer ;
Begin
     sNumero:=´´     ;
     m:=0            ;
     Numero := Valor ;
     While Numero >= 1 do Begin
        nAux := Numero mod 1000;
        if nAux > 0 then
           if nAux > 1 then
              sNumero := ( Centena( nAux ) + aMil[m][2] ) + sNumero
           else
              sNumero := ( Centena( nAux ) + aMil[m][1] ) + sNumero;
           Numero := Numero - nAux;
           Numero := Numero div 1000;
           if ( Numero >= 1 ) and (nAux > 0) and (Length(sNumero)>0 ) then
              sNumero := ´, ´ + sNumero;
           Inc(m);
     end;
     result := sNumero;
end;

{Retorna o extenso de um número monetário}
Function DinExtenso( const Valor:extended ): String;
var
     Principal  : LongInt ;
     Centavos   : integer ;
     ValExtenso : string  ;
Begin
     Principal  := trunc( Valor )                    ;
     Centavos   := round( (Valor - Principal)*100 )  ;
     ValExtenso := ´´                                ;
     if Principal > 0 then Begin
        ValExtenso := Extenso(Principal);
        if Principal = 1 then
           ValExtenso := ValExtenso + ´ Real´
        else
           ValExtenso := ValExtenso + ´ Reais´;
        if Centavos > 0 then
           ValExtenso := ValExtenso + ´ e ´;
     end;
     if Centavos > 0 then Begin
        ValExtenso := ValExtenso + Centena(Centavos);
        if Centavos = 1 then
           ValExtenso := ValExtenso + ´ Centavo´
        else
           ValExtenso := ValExtenso + ´ Centavos´;
     end;
     result := ValExtenso                            ;
end;




GOSTEI 0
POSTAR