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 :
-
EdtHarga.text := formatfloat('Rp. ##,###,###',sHarga);
-
- Menggunakan fungsi AnsiReplaceStr(). Misalnya sbb
-
EdtHarga.text :=Â AnsiReplaceStr(FormatFloat('#,###',sHarga),',','.');
-
- Dengan memodifikasi fungsi yang sudah ada di delphi. Misalnya sbb :
-
function sMataUangRP(nHarga:  Currency) : String; var n: String; begin n:= 'Rp.' + AnsiReplaceStr(FormatFloat('#,###',nHarga),',','.'); if nilai <= 0 then n:= 'Rp.0'; Result:= n; end;
-
- Dengan membuat fungsi sendiri. Misalnya sbb :
-
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;
-
Contoh penggunaan fungsi pada program
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.