I have created a function to address that for my use.
I think this may be useful to others so find the example project below
function NumberToWords(Number: real): string;
var
Billion: real;
Million: real;
Thousand: real;
Hundred: real;
Tens : Array[2..9] of string = ['','','Twenty','Thirty','Forty','Fifty','Sixty','Seventy','Eighty','Ninety'];
Units: array[1..9] of string = ['','One','Two','Three','Four','Five','Six','Seven','Eight','Nine'];
Teens: array[10..19] of string = ['Ten','Eleven','Twelve','Thirteen','Fourteen','Fifteen','Sixteen','Seventeen','Eighteen','Nineteen'];
begin
Billion := 1000000000;
Million := 1000000;
Thousand := 1000;
Hundred := 100;
if (Number < 0) then Result := 'minus ' else Result := '';
Number := Abs(Number);
if (Number >= Billion) then
begin
Result := Result + NumberToWords(Number div Billion) + ' billion, ';
Number := Number mod Billion;
end;
if (Number >= Million) then
begin
Result:= Result + NumberToWords(Number div Million) + ' million, ';
Number:= Number mod Million;
end;
if (Number >= Thousand) then
begin
Result:= Result + NumberToWords(Number div Thousand) + ' thousand, ';
Number:= Number mod Thousand;
end;
if (Number >= Hundred) then
begin
Result:= Result + NumberToWords(Number div Hundred) + ' hundred, ';
Number:= Number mod Hundred;
end;
if (Number > 0) and (Result <> '') then
begin
Result := Trim(Result);
if(Result[Length(Result)] = ',') then Delete(Result, Length(Result), 1);
Result := Result + ' and ';
end;
if (Number >= 20) then
begin
Result := Result + Tens[StrToInt(FloatToStr(Number)) div 10] + ' ';
Number := Number mod 10;
end;
if(Number >= 10) then
begin
Result :=Result + Teens[StrToInt(FloatToStr(Number mod 10))];
Number := 0;
end;
if (Number >= 1) then Result := Result + Units[StrToInt(FloatToStr(Number))];
Result := Trim(Result);
if (Result = '') then Result := 'zero'
else
if (Result[Length(Result)] = ',') then Delete(Result, Length(Result), 1);
end;
procedure btnMoneyToWord(Sender: string; var Cancel: boolean);
var
s: string;
begin
s:=NumberToWords(Form1.edAmount.Value);
ShowMessage(s);
end;
begin
end.
MVD, THE BEST
@thezimguy