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
public
end;
var
Form6: TForm6;
costo: extended; mensaje:integer; cos: integer; 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; 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;
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...
var i: integer;
begin
i:=1;
Edit2.Text:= CantidadEnLetra(StrToFloat(Edit1.Text),i)
end;
saludos!!!...