Delphi Can
OpenDialog uygulamada donma - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Mobil Platform - FireMonkey (FMX) (https://www.delphican.com/forumdisplay.php?fid=7)
+--- Konu Başlığı: OpenDialog uygulamada donma (/showthread.php?tid=5095)



OpenDialog uygulamada donma - Haydar - 16-07-2020

Merhaba, Uygulama işlem yaparken butonu tıkladığımda OpenDialogdan dolayı uygulamada donma durumu oluyor excel, resim veya video fark etmiyor. sorunu nasıl çözebilirim?

procedure TForm1.Button1Click(Sender: TObject);
begin
 OpenDialog1.FileName := '';
  if OpenDialog1.Execute then
  begin
    Edit1.Text := ChangeFileExt(ExtractFileName(OpenDialog1.FileName), '');
     Edit2.Text := OpenDialog1.FileName;
   end;
end;



OpenDialog uygulamada donma - mrmarman - 16-07-2020

Donma derken, yapılan bir işlem bekliyor anlamındaysa, ilgili işlemi bağımsız bir thread'e taşımak çözüm olacaktır.


Cvp: OpenDialog uygulamada donma - Haydar - 16-07-2020

(16-07-2020, Saat: 14:20)mrmarman Adlı Kullanıcıdan Alıntı: Donma derken, yapılan bir işlem bekliyor anlamındaysa, ilgili işlemi bağımsız bir thread'e taşımak çözüm olacaktır.


Donma olayı butona tıkladığım anda gerçekleşiyor. Yani opendialog penceresi açılana kadar, uygulamada devem eden faklı işlem donuyor.
pencere açıldıktan sonra işlem devam ediyor. TThread ilede değişen birşey olmadı.


procedure TForm1.Button1Click(Sender: TObject);
begin
  TThread.Synchronize(TThread.CurrentThread,
    procedure()
    begin
    OpenDialog1.FileName := '';
      if OpenDialog1.execute then
      begin
        Edit1.Text := ChangeFileExt(ExtractFileName(OpenDialog1.FileName), '');
       Edit2.Text := OpenDialog1.FileName;
      end;
    end);
end;



OpenDialog uygulamada donma - mrmarman - 16-07-2020

Arka uygulamayı yani donuyor dediğiniz işlemi thread'e taşımaktı kasıt opendialog değil.

Ayrıca main thread için synchronize demek ile direkt çalıştırmak aynı şey. Bu eski threade yeni adet olmuş Smile


Cvp: OpenDialog uygulamada donma - uparlayan - 16-07-2020

(16-07-2020, Saat: 13:42)Haydar Adlı Kullanıcıdan Alıntı: Merhaba, Uygulama işlem yaparken butonu tıkladığımda OpenDialogdan dolayı uygulamada donma durumu oluyor excel, resim veya video fark etmiyor. sorunu nasıl çözebilirim?

procedure TForm1.Button1Click(Sender: TObject);
begin
 OpenDialog1.FileName := '';
  if OpenDialog1.Execute then
  begin
    Edit1.Text := ChangeFileExt(ExtractFileName(OpenDialog1.FileName), '');
     Edit2.Text := OpenDialog1.FileName;
   end;
end;


Merhaba,

Donmanın bu kodda gerçekleştiğinden emin misiniz? Boş bir proje oluşturup test edermisiniz.


Cvp: OpenDialog uygulamada donma - Haydar - 16-07-2020

(16-07-2020, Saat: 16:32)uparlayan Adlı Kullanıcıdan Alıntı:
(16-07-2020, Saat: 13:42)Haydar Adlı Kullanıcıdan Alıntı: Merhaba, Uygulama işlem yaparken butonu tıkladığımda OpenDialogdan dolayı uygulamada donma durumu oluyor excel, resim veya video fark etmiyor. sorunu nasıl çözebilirim?

procedure TForm1.Button1Click(Sender: TObject);
begin
 OpenDialog1.FileName := '';
  if OpenDialog1.Execute then
  begin
    Edit1.Text := ChangeFileExt(ExtractFileName(OpenDialog1.FileName), '');
     Edit2.Text := OpenDialog1.FileName;
   end;
end;


Merhaba,

Donmanın bu kodda gerçekleştiğinden emin misiniz? Boş bir proje oluşturup test edermisiniz.

Evet hocam normalde sorun olmuyor. opendialog aktif hale gelice 1-2 saniye donma oluyor. Özelikle video oynatarak test yaptım oynayan video donuyor.


OpenDialog uygulamada donma - ysfckr - 17-07-2020

OpenDialog'ın göstereceği kısayollar, sürücüler, network bağlantıları arasında ulaşılamayan ya da zor ulaşılabilen bir eleman varsa OpenDialog bekleyebilir.

OpenDialog açıldığında, sol taraftaki klasör listesinde ulaşılamayan ya da tıklandığında geç ulaşılan bir eleman var mı kontrol edebilirsin.