Di Delphi kita mengenal fungsi-fungsi untuk menampilkan format string sesuai yg kita inginkan.
Nah untuk menampilakan format mata uang Rupiah, ternyata kita bisa menggunakan berbagai macam cara. Diantaranya adalah sebagai berikut:
- Menggunakan fungsi formatfloat(). Misalnya sbb :
-
0EdtHarga.text := formatfloat('Rp. ##,###,###',sHarga);
-
- Menggunakan fungsi AnsiReplaceStr(). Misalnya sbb
-
0EdtHarga.text := AnsiReplaceStr(FormatFloat('#,###',sHarga),',','.');
-
- Dengan memodifikasi fungsi yang sudah ada di delphi. Misalnya sbb :
-
01234567function sMataUangRP(nHarga: Currency) : String;varn: String;beginn:= 'Rp.' + AnsiReplaceStr(FormatFloat('#,###',nHarga),',','.');if nilai <= 0 then n:= 'Rp.0';Result:= n;end;
-
- Dengan membuat fungsi sendiri. Misalnya sbb :
-
012345678910111213141516171819202122232425function rupiah(sNilai : string): string;vari, j, p : Integer;sHasil, sKi : string;beginp := Length(Trim(sNilai));while (p mod 3 <> 0) dobeginsNilai := '0'+ sNilai;p := Length(sNilai);end;sHasil := '';for i := 1 to p dobeginif (i mod 3 = 0) thenbeginsHasil := shasil + '.'+Copy(sNilai, i - 2, 3);end;end;p := Length(sHasil);sHasil := Copy(sHasil, 2, p);sKi := Copy(sHasil, 1, 3);sKi := IntToStr(StrToInt(sKi));sHasil := sKi + Copy(sHasil, 4, p);Result := sHasil;end;
-
Contoh penggunaan fungsi pada program
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, StrUtils, XPMan; type TForm1 = class(TForm) edt1: TEdit; procedure edt1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; function rupiah(sNilai : string): string; implementation {$R *.dfm} function rupiah(sNilai : string): string; var i, j, p : Integer; sHasil, sKi : string; begin p := Length(Trim(sNilai)); while (p mod 3 <> 0) do begin sNilai := '0'+ sNilai; p := Length(sNilai); end; sHasil := ''; for i := 1 to p do begin if (i mod 3 = 0) then begin sHasil := shasil + '.'+Copy(sNilai, i - 2, 3); end; end; p := Length(sHasil); sHasil := Copy(sHasil, 2, p); sKi := Copy(sHasil, 1, 3); sKi := IntToStr(StrToInt(sKi)); sHasil := sKi + Copy(sHasil, 4, p); Result := sHasil; end; procedure TForm1.edt1Change(Sender: TObject); var param : string; begin param := AnsiReplaceStr(edt1.Text,'.',''); edt1.Text := rupiah(param); end; end. |
Oke Silahkan mencoba.