Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 27-02-2009
Avatar de krlox31416
krlox31416 krlox31416 is offline
Miembro
 
Registrado: jun 2008
Ubicación: San Juan del Río, Querétaro, México
Posts: 75
Poder: 19
krlox31416 Va por buen camino
tambien te puedes chacar la función del amigo contraveneno

Puedes checar en los foros hay vartias rutinas que hacen lo que pides...
Ahora bien para evitarte de lios bajate el componente Atexto...

Yo tambien hace tiempo tenia el mismo problema...
y primero lo que hice fue entender el codigo de la funcion que me paso contraveneno...

despues la implemente... pero mi problema seguia ya que no sabia como mandar llamar su función...

Hasta ese momento todo ok´s pero despues me faltaba validar que en el edit que queria convertir numeros a latras en vez de punto decimal validart que cambie el punto decimal por una coma eso tambien lo encontre con otra función que baje y modifique...

aunque parece dificil en realidad es facil viendolo desde el punto de vita que no programes...

pero debes checar por lo menos que se intenta hacer con el codigo...

te paso la función del amigo contraveneno... aclaro que esa función la creeo él

Código Delphi [-]
´
unit Unit6;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, Buttons, Mask, Grids, DBGrids;
type
  TForm6 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Label3: TLabel;
    Bevel1: TBevel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    Bevel2: TBevel;
    Bevel3: TBevel;
    StatusBar1: TStatusBar;
    Label8: TLabel;
    Label9: TLabel;
    BitBtn6: TBitBtn;
    Timer1: TTimer;
    DBGrid1: TDBGrid;
    procedure Timer1Timer(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure Edit4KeyPress(Sender: TObject; var Key: Char);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form6: TForm6;
  costo: extended;/// esto variable ya la ocupo para otras cosas... no es parte de la función
  mensaje:integer;///esto variable ya la ocupo para otras cosas... no es 
  cos: integer;///esto variable ya la ocupo para otras cosas... no es 
////////////////////todas las variables que siguen abajo son de la función
  i, MonNal: integer;
  Cantidad, Centavos: Currency;
  BloqueCero, NumeroBloques, Digito: Byte;
  PrimerDigito, SegundoDigito, TercerDigito: Byte;
  Resultado, Temp, strCentavos, Bloque: String;
  Unidades: Array[0..28] of String;
  Decenas: Array[0..8] of String;
  Centenas: Array[0..8] of String;
  Function CantidadEnLetra(curCantidad: Currency; MonNal: integer): String;// la funcion la declaro aqui porque la mando llamar en otra forma eso es opcional si tu quieres o la puedes mandar llamar en tu misma forma
  implementation
uses Unit2, Unit3;
{$R *.dfm}
Function CantidadEnLetra(curCantidad: Currency; MonNal: integer): String;
     begin
Unidades[0] := 'UN'; Unidades[1] := 'DOS'; Unidades[2] := 'TRES'; Unidades[3] := 'CUATRO';
Unidades[4] := 'CINCO'; Unidades[5] := 'SEIS'; Unidades[6] := 'SIETE'; Unidades[7] := 'OCHO';
Unidades[8] := 'NUEVE'; Unidades[9] := 'DIEZ'; Unidades[10] := 'ONCE'; Unidades[11] := 'DOCE';
Unidades[12] := 'TRECE'; Unidades[13] := 'CATORCE'; Unidades[14] := 'QUINCE'; Unidades[15] := 'DIESISEIS';
Unidades[16] := 'DIESISIETE'; Unidades[17] := 'DIESIOCHO'; Unidades[18] := 'DIESINUEVE';
Unidades[19] := 'VEINTE'; Unidades[20] := 'VEINTIUNO'; Unidades[21] := 'VEINTIDOS';
Unidades[22] := 'VEINTITRES'; Unidades[23] := 'VEINTICUATRO'; Unidades[24] := 'VEINTICINCO';
Unidades[25] := 'VEINTISEIS'; Unidades[26] := 'VEINTISIETE'; Unidades[27] := 'VEINTIOCHO'; Unidades[28] := 'VEINTINUEVE';
Decenas[0] := 'DIEZ'; Decenas[1] := 'VEINTE'; Decenas[2] := 'TREINTA'; Decenas[3] := 'CUARENTA';
Decenas[4] := 'CINCUENTA'; Decenas[5] := 'SESENTA'; Decenas[6] := 'SETENTA'; Decenas[7] := 'OCHENTA'; Decenas[8] := 'NOVENTA';
Centenas[0] := 'CIENTO'; Centenas[1] := 'DOSCIENTOS'; Centenas[2] := 'TRESCIENTOS'; Centenas[3] := 'CUATROCIENTOS';
Centenas[4] := 'QUINIENTOS'; Centenas[5] := 'SEISCIENTOS'; Centenas[6] := 'SETECIENTOS'; Centenas[7] := 'OCHOCIENTOS'; Centenas[8] := 'NOVECIENTOS';
Cantidad := Trunc(curCantidad);
Centavos := (curCantidad - Cantidad) * 100;
NumeroBloques := 1;
Repeat
 PrimerDigito := 0;
 SegundoDigito := 0;
 TercerDigito := 0;
 Bloque := '';
 BloqueCero := 0;
 For i := 1 To 3 do
        begin
        Digito := Round(Cantidad) Mod 10;
        If Digito <> 0 Then
        begin
               Case i of 1:
                            begin
                            Bloque := ' ' + Unidades[Digito - 1];
                            PrimerDigito := Digito;
                            end;
                         2:
                            begin
                            If Digito <= 2 Then
                            begin
                            Bloque := ' ' + Unidades[(Digito * 10 + PrimerDigito - 1)];
                            end
                               Else
                                   begin
                                   If PrimerDigito <> 0 then
                                      Temp := ' Y'
                                      else
                                      Temp := '';
                                      Bloque := ' ' + Decenas[Digito - 1] + Temp + Bloque;
                                      End;
                               SegundoDigito := Digito;
                            end;
                         3:
                            begin
                            If (Digito = 1) and (PrimerDigito = 0) and (SegundoDigito = 0) then
                                Temp := 'CIEN'
                                else Temp := Centenas[Digito-1];
                                Bloque := ' ' + Temp + Bloque;
                                TercerDigito := Digito;
                                end;
               End;
        end
        Else
        begin
        BloqueCero := BloqueCero + 1;
        End;
        Cantidad := Int(Cantidad / 10);
        If Cantidad = 0 Then
           begin
           Break;
           End;
           end;
Case NumeroBloques of 1:
                         Resultado := Bloque;
                      2:
                         begin
                         if BloqueCero = 3 then
                        Temp := ''
                         else
                         Temp := ' MIL';
                                 Resultado := Bloque + Temp + Resultado;
                          end;
                       3:
                          begin
                          If (PrimerDigito = 1) and (SegundoDigito = 0) and (TercerDigito = 0) then
                             Temp := ' MILLON'
                             else
                                 Temp := ' MILLONES';
                                 Resultado := Bloque + Temp + Resultado;
                          end;
                End;
                NumeroBloques := NumeroBloques + 1;
                Until Cantidad = 0;
                        case MonNal of 0: begin
                                          If curCantidad > 1 then
                                          Temp := ' CENTAVOS ' else Temp := ' CENTAVO ';
                                          CantidadEnLetra := Resultado + Temp;
                                          end;
                                       1: begin
                                          If curCantidad > 1 then
                                             Temp := ' PESOS '
                                             else
                                                 Temp := ' PESO ';
                                                 if Centavos=0 then
                                                    strCentavos := ''
                                                    else
                                                        strCentavos := 'CON '+CantidadEnLetra(Centavos, 0);
                                                        CantidadEnLetra := Resultado + Temp + strCentavos;
                                          end;
                                       2: begin
                                          If curCantidad > 1 then
                                             Temp := ' DLLS '
                                             else
                                                 Temp := ' DOLAR ';
                                                 if Centavos=0 then strCentavos := '' else strCentavos := 'CON '+CantidadEnLetra(Centavos, 0);
                                                    CantidadEnLetra := Resultado + Temp + strCentavos;
                                                    end;
                                          end;
end;
/// ya puedes mandar llamar la función... ya sea en esta forma o en cualquiera...

Código Delphi [-]
 
solo recuerda que en tu edit valides que ponga comas en vez de punto decimal
ej: 123.56 por 123,56 y todo saldra ok's...
/// aqui la mandas llamar segun el componente y evento que quieras usar
var i: integer;
begin
i:=1;
Edit2.Text:= CantidadEnLetra(StrToFloat(Edit1.Text),i)
end;

saludos!!!...
__________________
el cielo me dio un cariño sin merecerlo... chimikuilo!!!
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Convertir números en letras c748a Varios 14 10-04-2015 20:52:18
Numeros a letras citlalliDgp Varios 6 19-03-2009 07:14:54
Numeros y letras Caral Varios 11 28-03-2008 18:22:53
Numeros En Letras Cañones Impresión 2 11-06-2007 23:55:12
Numeros a Letras!! jmedina Varios 26 20-10-2005 20:19:42


La franja horaria es GMT +2. Ahora son las 23:19:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi