Kamis, 15 November 2012

Membuat Format Uang di Delphi 3

Melanjutkan tutorial sebelumnya (Membuat Format Uang di Delphi 2), selanjutnya untuk membuat aplikasi menjadi user friendly
perlu ditambahkan fitur-fitur tambahan, diantaranya :
- pada inputan nilai uang hanya bisa diisikan angka saja
- menangani error pada saat akan mengedit inputan nilai uang
- dan lain-lainnya
Kembali pada contoh aplikasi yang dibuat sebelumya



berikut form yang dibuat :


- Pada Event OnCreate Form1, tambahkan kode menjadi seperti berikut
  procedure TForm1.FormCreate(Sender: TObject);
  begin
    Edit1.Text := '';
    Edit2.Text := '';
    Edit3.Text := '';
  end;

- Untuk membuat inputan nilai mata uang hanya bisa diisi oleh angka saja, tambahkan pada Event OnKeyPress pada Edit1 :
  procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
  begin
    if (Key in ['0'..'9','-',^C,^V]) or (Key=#9) or (Key=#13) or (Key=#08) then
      else Key := #0;
    if Key=#13 then
      Edit2.SetFocus;
  end;
 
  dan pada Edit2 :
  procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
  begin
    if (Key in ['0'..'9','-',^C,^V]) or (Key=#9) or (Key=#13) or (Key=#08) then
      else Key := #0;
    if Key=#13 then
      BitBtn1.SetFocus;
  end;
 
- Butlah sebuah function untuk mengembalikan nilai menjadi nilai inputan
  function TForm1.ReplaceBlank(StrText:string):string;
  begin
    ReplaceBlank := AnsiReplaceStr(StrText,',','');
  end;
 
  definisikan function tersebut pada private,
    private
    { Private declarations }
    NilaiUang1, NilaiUang2, Jumlah : real;
    function ReplaceBlank(StrText:string):string;
 
  dan tambahkan StrUtils pada uses.
 
- Pada event OnExit dari Edit1 dan Edit 2 ubah menjadi seperti berikut
  Edit1 :
  procedure TForm1.Edit1Exit(Sender: TObject);
  begin
    if Edit1.Text = '' then
    else
      begin
        NilaiUang1 := StrToFloat(ReplaceBlank(Edit1.Text));
        Edit1.Text := Format('%.n',[StrToFloat(ReplaceBlank(Edit1.Text))]);
      end;
  end;
 
  dan pada Edit1:
  procedure TForm1.Edit2Exit(Sender: TObject);
  begin
    if Edit2.Text = '' then
    else
      begin
        NilaiUang2 := StrToFloat(ReplaceBlank(Edit2.Text));
        Edit2.Text := Format('%.n',[StrToFloat(ReplaceBlank(Edit2.Text))]);
      end;
  end;
 

Berikut keseluruhan kodenya :
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons, StrUtils;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit3: TEdit;
    Bevel1: TBevel;
    Bevel2: TBevel;
    BitBtn1: TBitBtn;
    Bevel3: TBevel;
    procedure Edit1Exit(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2Exit(Sender: TObject);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    NilaiUang1, NilaiUang2, Jumlah : real;
    function ReplaceBlank(StrText:string):string;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.ReplaceBlank(StrText:string):string;
begin
  ReplaceBlank := AnsiReplaceStr(StrText,',','');
end;

procedure TForm1.Edit1Exit(Sender: TObject);
begin
  if Edit1.Text = '' then
  else
   begin
     NilaiUang1 := StrToFloat(ReplaceBlank(Edit1.Text));
     Edit1.Text := Format('%.n',[StrToFloat(ReplaceBlank(Edit1.Text))]);
   end;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if (Key in ['0'..'9','-',^C,^V]) or (Key=#9) or (Key=#13) or (Key=#08) then
    else Key := #0;
  if Key=#13 then
    Edit2.SetFocus;
end;

procedure TForm1.Edit2Exit(Sender: TObject);
begin
  if Edit2.Text = '' then
  else
   begin
     NilaiUang2 := StrToFloat(ReplaceBlank(Edit2.Text));
     Edit2.Text := Format('%.n',[StrToFloat(ReplaceBlank(Edit2.Text))]);
   end;
end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  if (Key in ['0'..'9','-',^C,^V]) or (Key=#9) or (Key=#13) or (Key=#08) then
    else Key := #0;
  if Key=#13 then
    BitBtn1.SetFocus;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  Jumlah := NilaiUang1 + NilaiUang2;
  Edit3.Text := Format('%.n',[Jumlah]);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Text := '';
  Edit2.Text := '';
  Edit3.Text := '';
end;

end.

Source kode bisa di download pada link di bawah ini :
Membuat Format Uang di Delphi 3

Ketentuan :
Teman-teman boleh menyebarkan tulisan ini dengan mencantumkan link berikut :
sumber : http://elpro82.blogspot.com

<<<< Terima kasih >>>>
 

0 komentar:

Posting Komentar