Get this widget!

Senin, 26 Januari 2015

Fungsi terbilang di delphi

Trik Jadul sieh....hehe..hanya sekedar buat simpenan kalie aja ada yang butuhin
langsung aja berikut:
Kita hanya memerlukan fungsi berikut dibawah ini , taroh di bawah implementation :


implementation

function terbilang(dNumber: Extended): string;
const
aNum: array[1..9] of String = ('satu', 'dua', 'tiga', 'empat', 'lima', 'enam', 'tujuh', 'delapan', 'sembilan');
aUnit: array[1..5] of String = ('trilyun', 'milyar', 'juta', 'ribu', '');
var
iCount, iDigit1, iDigit2, iDigit3: Integer;
sNum2Str, s3Digit, sWord: string;
begin

Result := '';
if (dNumber=0) then Exit;
sNum2Str:=Copy(Format('%18.2f', [dNumber]), 1, 15);
for ICount:=1 to 5 do
begin
s3Digit:=Copy(sNum2Str, iCount*3-2, 3);
if (StrToIntDef(s3Digit, 0)<>0) then
begin
sWord:='';
iDigit1:=StrToIntDef(Copy(s3Digit, 1, 1), 0);
iDigit2:=StrToIntDef(Copy(s3Digit, 2, 1), 0);
iDigit3:=StrToIntDef(Copy(s3Digit, 3, 1), 0);
case iDigit1 of
2..9: sWord:=sWord+aNum[iDigit1]+' ratus ';
1: sWord:=sWord+'seratus ';
end; { case }

case iDigit2 of
2..9: sWord:=sWord+aNum[iDigit2]+' puluh ';
1: case iDigit3 of
2..9: sWord:=sWord+aNum[iDigit3]+' belas ';
1: sWord:=sWord+'sebelas ';
0: sWord:=sWord+'sepuluh ';
end; { case }
end; { case }

if (iDigit2<>1) then
case iDigit3 of
2..9: sWord:=sWord + aNum[iDigit3] + ' ';
1: if (iCount=4) and ((iDigit1+iDigit2)=0) then
sWord:=sWord+'se'
else
sWord:=sWord+'satu ';
end;
Result:=Result+sWord+aUnit[iCount]+' ';
end;
end;
while Result[Length(Result)]=' ' do
SetLength(Result, Length(Result)-1);
end;
 
Setelah itu saya telah membuat form sederhana, yang berisi 1 Edit, 1 Memo dan 1 Button yang berada di palete Standatrd semua, setelah membuat fungsi diatas maka pada tombol (Button) saya sisipkan kode ini


procedure TForm1.btn1Click(Sender: TObject);
begin
mmo1.Text:=terbilang(StrToFloatDef(edt1.Text,0));
end;
 
 
Keterangan : Karena fungsi membutuhkan inputan numeric maka saya konfersi StrToIntDef(edt1.Text,0), StrToIntDef maksutnya memberikan nilai default NOL jika format tidak bisa di konfersi menjadi integer alias untuk mencegah error.
hasil sepertui ini:

 
gimana sangat simple dan mudah kan, untuk implementasinya tidak harus selalu lewat tombol bisa kita modifikasi sesuai selera, tidak hanya di tampilkan di memo bisa kita gunakan di report atau lain sebaginya, semoga bermanfaat.
 

Tidak ada komentar:

Posting Komentar

tes member

Personal
Message