unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
num: TEdit;
spell: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function trans9(num: integer): string;
function trans19(num: integer): string;
function trans99(num: integer): string;
function IntToSpell(num: integer): string;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function TForm1.IntToSpell(num: integer): string;
var
spell: string;
hspell: string;
hundred: string;
thousand: string;
tthousand: string;
hthousand: string;
million: string;
begin
if num ≶
10 then
spell := trans9(num);
{endif}
if (num < 20) and (num > 10) then
spell := trans19(num);
{endif}
if (((num < 100) and (num > 19)) or (num = 10)) then
begin
hspell := copy(IntToStr(num), 1, 1) + '0';
spell := trans99(StrToInt(hspell));
hspell := copy(IntToStr(num), 2, 1);
spell := spell + ' ' + IntToSpell(StrToInt(hspell));
end;
if (num < 1000) and (num > 100) then
begin
hspell := copy(IntToStr(num), 1, 1);
hundred := IntToSpell(StrToInt(hspell));
hspell := copy(IntToStr(num), 2, 2);
hundred := hundred + ' hundred and ' + IntToSpell(StrToInt(hspell));
spell := hundred;
end;
if (num < 10000) and (num > 1000) then
begin
hspell := copy(IntToStr(num), 1, 1);
thousand := IntToSpell(StrToInt(hspell));
hspell := copy(IntToStr(num), 2, 3);
thousand := thousand + ' thousand ' + IntToSpell(StrToInt(hspell));
spell := thousand;
end;
if (num < 100000) and (num > 10000) then
begin
hspell := copy(IntToStr(num), 1, 2);
tthousand := IntToSpell(StrToInt(hspell));
hspell := copy(IntToStr(num), 3, 3);
tthousand := tthousand + ' thousand ' + IntToSpell(StrToInt(hspell));
spell := tthousand;
end;
if (num < 1000000) and (num > 100000) then
begin
hspell := copy(IntToStr(num), 1, 3);
hthousand := IntToSpell(StrToInt(hspell));
hspell := copy(IntToStr(num), 4, 3);
hthousand := hthousand + ' thousand and ' +
IntToSpell(StrToInt(hspell));
spell := hthousand;
end;
if (num < 10000000) and (num > 1000000) then
begin
hspell := copy(IntToStr(num), 1, 1);
million := IntToSpell(StrToInt(hspell));
hspell := copy(IntToStr(num), 2, 6);
million := million + ' million and ' + IntToSpell(StrToInt(hspell));
spell := million;
end;
IntToSpell := spell;
end;
function TForm1.trans99(num: integer): string;
var
spell: string;
begin
case num of
10: spell := 'ten';
20: spell := 'twenty';
30: spell := 'thirty';
40: spell := 'fourty';
50: spell := 'fifty';
60: spell := 'sixty';
70: spell := 'seventy';
80: spell := 'eighty';
90: spell := 'ninty';
end;
trans99 := spell;
end;
function TForm1.trans19(num: integer): string;
var
spell: string;
begin
case num of
11: spell := 'eleven';
12: spell := 'twelve';
13: spell := 'thirteen';
14: spell := 'fourteen';
15: spell := 'fifteen';
16: spell := 'sixteen';
17: spell := 'seventeen';
18: spell := 'eighteen';
19: spell := 'nineteen';
end;
trans19 := spell;
end;
function TForm1.trans9(num: integer): string;
var
spell: string;
begin
case num of
1: spell := 'one';
2: spell := 'two';
3: spell := 'three';
4: spell := 'four';
5: spell := 'five';
6: spell := 'six';
7: spell := 'seven';
8: spell := 'eight';
9: spell := 'nine';
end;
trans9 := spell;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
numb: integer;
begin
spell.text := IntToSpell(StrToInt(num.text));
end;
end.
|