Kopyalama Yaparken programın donması

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1269
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Kopyalama Yaparken programın donması

Mesaj gönderen ALUCARD »

Arkadaşlar merhaba;
Belirli aralıklar ile sunucuda bulunan yedekleri başka bir ortama aktaran bir program yazdım.
dosya sayısı 15-20 arası değişiyor ve toplam boyut 1 TB buluyor.

Kopyalama için kullandığım kod

Kod: Tümünü seç

 FileMode := 0;
  ProgressBar1.Max := FileListBox1.Count;
  if FindFirst(dir + '\*.*', faAnyFile, F) = 0 then
    repeat
      try
     CopyFile(PChar(dir + '\' + F.Name),  PChar(DirectoryListBox2.Directory + '\' + F.Name), True);
        Memo1.Lines.Add(F.Name + '-' + IntToStr(F.Size) + '-' + DateTimeToStr(F.TimeStamp));
        WriteToLog(F.Name + '-' + IntToStr(F.Size) + '-' +      DateTimeToStr(F.TimeStamp));
        Memo1.Lines.Add(YedekDetayKaydet(DateToStr(DateTimePicker1.Date), F.Name, RadioGroup1.Items[RadioGroup1.ItemIndex],       DateTimeToStr(F.TimeStamp), IntToStr(F.Size)));
        ProgressBar1.StepBy(1);
      except
        on e: exception do
      end;
program kopyala işlemini gayet başarılı bir şekilde yapıyor
Ancak kopyalama işlemi bitene kadar program cevap vermiyor. Bunu engellemenin bir yolu varmıdır.

Bana bu konuda bir yardımı edebilirseniz sevinirim.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
loaded
Üye
Mesajlar: 122
Kayıt: 12 Eki 2010 09:45
Konum: Konya
İletişim:

Re: Kopyalama Yaparken programın donması

Mesaj gönderen loaded »

Merhaba,
Uzun süreli işlemlerde Thread kullanmalısınız. Veya daha basit usulde ;

Kod: Tümünü seç

Application.ProcessMessages;
Kullanabilirsiniz. Fakat bu kodun kullanılması ustalarca tavsiye edilmez.
En son loaded tarafından 02 Ara 2022 12:08 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
ertank
Kıdemli Üye
Mesajlar: 1651
Kayıt: 12 Eyl 2015 12:45

Re: Kopyalama Yaparken programın donması

Mesaj gönderen ertank »

ALUCARD yazdı: 02 Ara 2022 10:32 dosya sayısı 15-20 arası değişiyor ve toplam boyut 1 TB buluyor.

program kopyala işlemini gayet başarılı bir şekilde yapıyor
Ancak kopyalama işlemi bitene kadar program cevap vermiyor. Bunu engellemenin bir yolu varmıdır.
Merhaba,
Yapmak istediğiniz kopyalama işlemini yarıda kesebilmek mi? Bunun için belki ShallApi kullanabilirsiniz. Dosya kopyalamayı windows'un alıştığınız ekranı şeklinde yapmış olursunuz. Aşağıdaki bağlantıda bir örneği mevcut.

https://www.swissdelphicenter.ch/en/showcode.php?id=28
Cevapla