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 berikutJika 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.