Fungsi untuk menghapus separator ribuan

Fungsi untuk menghapus separator ribuan

http://ivandarmawan.wordpress.com/category/delphi/page/3/
Posted in Delphi on 13 January 2008 by eksa

// fungsi untuk menghapus separator ribuan
// sebelum data diconvert menjadi angka, pastikan
// sudah tidak ada separator ribuan
function RemSeparator(const Text: string;
Separator: Char): string;
var
i: integer;
s: string;
begin
s := Text;
for i := 1 to Length(Text) do
if s[i] = Separator then Delete(s, i, 1);
Result := s;
end;

procedure TFFormatDuit.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
// ubah data dari teks menjadi float, dan ubah kembali dari float dengan
// teks yang udah berformat
procedure ConvertData;
begin
if Edit1.Text = ” then Edit1.Text := ‘0′;
Edit1.Text := FormatFloat(’#,##0.00′, StrToFloat(RemSeparator(Edit1.Text,’,')));
end;
var
i: Integer;
begin
// ubah data, dan kemudian letakkan data pada sel paling akhir
// dari kotak edit sehingga pengisian berupa right align
if Key in [96..105,110] then begin
ConvertData;
i := Pos(decimalseparator,Edit1.Text);
if (i>0) then
if Key = 110 then
Edit1.SelStart := i else
Edit1.SelStart := i - 1;
end;
end;

procedure TFFormatDuit.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
// pastikan data yang dimasukkan selalu benar
// tidak boleh huruf
case Key of
‘0′..’9′ : Next;
‘,’ : Next;
else
Key := #0
end;
end;

Share this

Related Posts

Previous
Next Post »