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;
EmoticonEmoticon