Monday, 20 October 2014

Make a teracopy in delphi7 (buat teracopy)

Tags



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}
  1. procedure kondisiAwal;  
  2. begin  
  3.   with Form1 do  
  4.     begin  
  5.       Label1.Caption:=”;  
  6.       ProgressBar1.Position:=0;  
  7.     end;  
  8. end;  
Panggil procedure tersebut pada Form1 event onShow.Ketikan kode berikut
  1. procedure TForm1.FormShow(Sender: TObject);  
  2. begin  
  3.   kondisiAwal;  
  4. end;  
Nah , selanjutnya kita akan membuat procedure copyFile.Yang tentu saja berfungsi untuk mengkopi file XD.Ketikan kode berikut setelah procedure kondisAwal.
  1. procedure copyFile(sumber, tujuan: string);  
  2. var  
  3.   dariFile, keFile: file of byte;  
  4.   Buffer: array[0..4096] of char;  
  5.   NumRead: integer;  
  6.   ukuranFile: longint;  
  7.   t1, t2: DWORD;  
  8.   maksimal: integer;  
  9. begin  
  10.   with Form1 do  
  11.     begin  
  12.       AssignFile(dariFile, sumber);  
  13.       reset(dariFile);  
  14.       AssignFile(keFile, tujuan);  
  15.       rewrite(keFile);  
  16.       ukuranFile := FileSize(dariFile);  
  17.       with Progressbar1 do  
  18.         begin  
  19.           Min  := 0;  
  20.           Max  := ukuranFile;  
  21.           t1   := GetTickCount;  
  22.           maksimal := Max div 4096;  
  23.           while ukuranFile > 0 do  
  24.             begin  
  25.               BlockRead(dariFile, Buffer[0], SizeOf(Buffer), NumRead);  
  26.               ukuranFile := ukuranFile - NumRead;  
  27.               BlockWrite(keFile, Buffer[0], NumRead);  
  28.               t2  := GetTickCount;  
  29.               Min := Min + 1;  
  30.               // menampilkan waktu di label1  
  31.               label1.Caption := FormatFloat(’0.00′, ((t2 - t1) / min * maksimal - t2 + t1) / 100)+‘ detik’;  
  32.               Application.ProcessMessages;  
  33.               Position := Position + NumRead;  
  34.             end;  
  35.           CloseFile(dariFile);  
  36.           CloseFile(keFile);  
  37.       end;  
  38.     end;  
  39. end;  
Procedure tersebut berfungsi menggandakan file dan menghitung sisa waktu transfer file.Selanjutnya , double klik button1 , dan ketikan kode berikut.
  1. procedure TForm1.Button1Click(Sender: TObject);  
  2. var sumber , tujuan:String;  
  3. begin  
  4.   if OpenDialog1.Execute then //jika file terpilih  
  5.     begin  
  6.       sumber:=OpenDialog1.FileName;  
  7.       SaveDialog1.FileName:=sumber;  
  8.       if SaveDialog1.Execute then  // jika tujuan terpilih  
  9.         begin  
  10.           tujuan:=SaveDialog1.FileName;  
  11.           copyFile(sumber,tujuan);//procedure copyFile dipanggil  
  12.           ShowMessage(‘Proses Copy Selesai’);  
  13.           kondisiAwal;  
  14.         end;  
  15.     end;  


EmoticonEmoticon