Kamis, 04 Agustus 2011

Cara Membuat Aplikasi Teracopy di Delphi 7

Selamat siang agan-agan , lagi-lagi mendung menjelang hujan.Namun bukan alasan untuk tidak bersemangat.Pada postingan kali ini saya akan menyajikan tutorial mengenai Cara Membuat Aplikasi Teracopy di Delphi 7.Sudah tau kan apa itu Teracopy !?Benar sekali (kok jadi mirip Dora -,-" ),Teracopy merupakan aplikasi untuk mengkopi file secara cepat.Silahkan googling kalau belum ngeh.Dan kita , akan membuatnya di Delphi 7.Penasaran dong gimana bikinnya !? Makanya , terus ikutin sampe selesai.Pertama , ya buka dulu Delphi 7 nya.Sebelum itu , saya akan menjelaskan sedikit alur kerja
program ini.Ketika user menekan tombol copy , maka akan tampil open dialog yang berfungsi mencari file yang akan di copy , setelah terpilih maka akan muncul save dialog dimana kita akan menyimpan file yang telah terpilih.Lalu proses pengkopian pun terjadi dengan di tampilkannya sisa waktu copy file serta posisi progress bar sebagai acuan proses copy.Ngerti !? Tentu saja enggak !! haha.Okey deh , kita praktekan saja.Tambahkan 1 buah TButton , 2 TLabel , 1 buah TProgressBar , 1 buah TOpenDialog dan 1 buah TSaveDialog.Jika sudah , susun component-component tersebut sesuai gambar berikut







Jika sudah , sekarang saatnya untuk koding !! Pertama , kita akan membuat tampilan awal ketika aplikasi di jalankan.Yaitu tampilan label1 menjadi kosong , dan progress position di 0.Maka dari itu , kita akan membuat procedure dengan nama , procedure kondisiAwal.Ketikan kode berikut setelah {$R *.dfm}

procedure kondisiAwal;
begin
  with Form1 do
    begin
      Label1.Caption:='';
      ProgressBar1.Position:=0;
    end;
end;

Panggil procedure tersebut pada Form1 event onShow.Ketikan kode berikut

procedure TForm1.FormShow(Sender: TObject);
begin
  kondisiAwal;
end;

Nah , selanjutnya kita akan membuat procedure copyFile.Yang tentu saja berfungsi untuk mengkopi file XD.Ketikan kode berikut setelah procedure kondisAwal.

procedure copyFile(sumber, tujuan: string);
var
  dariFile, keFile: file of byte;
  Buffer: array[0..4096] of char;
  NumRead: integer;
  ukuranFile: longint;
  t1, t2: DWORD;
  maksimal: integer;
begin
  with Form1 do
    begin
      AssignFile(dariFile, sumber);
      reset(dariFile);
      AssignFile(keFile, tujuan);
      rewrite(keFile);
      ukuranFile := FileSize(dariFile);
      with Progressbar1 do
        begin
          Min  := 0;
          Max  := ukuranFile;
          t1   := GetTickCount;
          maksimal := Max div 4096;
          while ukuranFile > 0 do
            begin
              BlockRead(dariFile, Buffer[0], SizeOf(Buffer), NumRead);
              ukuranFile := ukuranFile - NumRead;
              BlockWrite(keFile, Buffer[0], NumRead);
              t2  := GetTickCount;
              Min := Min + 1;
              // menampilkan waktu di label1
              label1.Caption := FormatFloat('0.00', ((t2 - t1) / min * maksimal - t2 + t1) / 100)+' detik';
              Application.ProcessMessages;
              Position := Position + NumRead;
            end;
          CloseFile(dariFile);
          CloseFile(keFile);
      end;
    end;
end;

Procedure tersebut berfungsi menggandakan file dan menghitung sisa waktu transfer file.Selanjutnya , double klik button1 , dan ketikan kode berikut.

procedure TForm1.Button1Click(Sender: TObject);
var sumber , tujuan:String;
begin
  if OpenDialog1.Execute then //jika file terpilih
    begin
      sumber:=OpenDialog1.FileName;
      SaveDialog1.FileName:=sumber;
      if SaveDialog1.Execute then  // jika tujuan terpilih
        begin
          tujuan:=SaveDialog1.FileName;
          copyFile(sumber,tujuan);//procedure copyFile dipanggil
          ShowMessage('Proses Copy Selesai');
          kondisiAwal;
        end;
    end;

Taraaaa !! Beres deh.Jalankan program anda lalu klik Button1.Pilih file yang akan di copy lalu pilih lokasi tujuan copy.Usahakan pilih file yang agak besar sekitar 20 Mb , agar terlihat ketika progress bar bekerja , dan sisa waktu copy di tampilkan.Okey deh , sekian tutorial kali ini , semoga bermanfaat.

Simak Juga Tutorial Lainnya:

9 komentar:

frozenade mengatakan...

kalo sekalian untuk membuat copy hook nya gimana ya gan? mungkin bisa sekalian dijelaskan. :)

trims.

Unknown mengatakan...

loh ko ilang ya komennya td?? -.-a

yg ini gmn maksudnya kk??

Panggil procedure tersebut pada Form1 event onShow.Ketikan kode berikut

Bayu Idham Fathurachman mengatakan...

kan gini , di form1 itu ada event yang namanya onShow , nah procedure yang udeh di buat (dalam kasus ini , procedure kondisiAwal) , panggil disitu ..

Unknown mengatakan...

nah yg dimaksud panggil itu yg ga mudeng kk :D
cz masi awam ne :D

Bayu Idham Fathurachman mengatakan...

maksudnya manggil itu , ya ketik aja procedurenya di event onShow :D

Unknown mengatakan...

berarti kode

-procedure TForm1.FormShow(Sender: TObject);
begin
kondisiAwal;
end;-

ditulis di

even show ya kk?

Bayu Idham Fathurachman mengatakan...

bukan gan ..
cukup ketik kondisiAwal;
karena kode sisany itu bawaan onShow , jadi gak usah di ketik lagi :)

selamat belanja.com mengatakan...

jalan lancar :D
tinggal di kembangkan :D

sakarepedhewe mengatakan...

Saya Coba Copy File yang agak gede kok hasil copyannya nggak sama dengan aslinya ya???

saya copy file besarnya 4Gb hasil copyannya cuman sekitar 300Mb

Posting Komentar