Merhabalar arkadaşlar,
Hazırladığım bir proje mevcut ve şuan iki yerde kullanılıyor. Fakat işyerinde yoğunluk olduğu zaman program kilitleniyor. Bazen butonlar tıklıyor ama butonun açması gereken ekranlar hiç açılmıyor, sadece butona tıklandığını fark edebiliyoruz. Sorunu bir türlü çözemedim. buton altındaki kodlarım o an çalışmıyor.
Acil desteğe ihtiyacım var.
NOT: butonların açacağı ekranların kodları örneğin şu şekilde:
Application.createform(TSatisEkran, SatisEkran);
SatisEkran.showmodal;
Burada sıkıntı olabilir mi?
Butonların bazen tıklamaması
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Butonların bazen tıklamaması
SatisEkran formunun oncreate,show,active vs eventlerini kontrol et, db bağlantılarını query lerini vs.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Re: Butonların bazen tıklamaması
cevabınız için teşekkürler. Fakat bu sorunu sadece bu yazdığım Satış ekranında yaşamıyorum
Formları create edip show yaptıktan sonra nil yapmam gerekir mi her seferinde?
Application.createform(TSatisEkran, SatisEkran);
SatisEkran.showmodal;
SatisEkran.nil; ya da ( freeandnil(SatisEkran) gibi )
Formları create edip show yaptıktan sonra nil yapmam gerekir mi her seferinde?
Application.createform(TSatisEkran, SatisEkran);
SatisEkran.showmodal;
SatisEkran.nil; ya da ( freeandnil(SatisEkran) gibi )
-
- Üye
- Mesajlar: 121
- Kayıt: 10 Ara 2015 10:39
Re: Butonların bazen tıklamaması
Merhaba.
Kod kullanım şekliniz bana yanlış geldi. Sebebi; kullanım şekliniz, butona her tıklandığında formu oluşturacak şekilde. Kendi kullandığım yapıyı örnek olarak ekliyorum. Kendinize uyarlarsınız.
FormClose için;
Kod kullanım şekliniz bana yanlış geldi. Sebebi; kullanım şekliniz, butona her tıklandığında formu oluşturacak şekilde. Kendi kullandığım yapıyı örnek olarak ekliyorum. Kendinize uyarlarsınız.
Kod: Tümünü seç
if Kursiyer_Karti = Nil Then
Kursiyer_Karti := TKursiyer_Karti.Create(self);
DM.KURSIYER.Append;
Kursiyer_Karti.ShowModal;
Kod: Tümünü seç
Action:=Cafree;
Kursiyer_Karti:= nil;
Re: Butonların bazen tıklamaması
@ihalilcoban nil kodunu FormDestroy a eklemeni tavsiye ederim. Close event inde henüz form free edilmemiş durumdadır. Ayrıca if değerini uygulama ilk çalıştığında, nil ile bir default değer atamak en doğru yazım şekli olur.
@enesharun yazdığım eventlerdeki kodlarını incele demekte ısrar ediyorum. Debug et geçikmelerin çoğu db bağlantılarında, sql yazılımlarında yani sonuçlarında, ard arda sürekli event tetiklenmelerinde vs bir sürü sebep ve olasılık var. Buda tasarım demek. Tasarım herkes görsellik olarak algılıyor, ama programcılık budur. Her class ı bilmek ve bunları bağladığında hangi kod nasıl çalışır, kurgulamak gerek. İkinci mesajında aynı şeyi yazmışsın. Show. show un yaptığı sadece ekrana form ve üzerindekileri gösterir ve ilgili eventleri tetikletir.
@enesharun yazdığım eventlerdeki kodlarını incele demekte ısrar ediyorum. Debug et geçikmelerin çoğu db bağlantılarında, sql yazılımlarında yani sonuçlarında, ard arda sürekli event tetiklenmelerinde vs bir sürü sebep ve olasılık var. Buda tasarım demek. Tasarım herkes görsellik olarak algılıyor, ama programcılık budur. Her class ı bilmek ve bunları bağladığında hangi kod nasıl çalışır, kurgulamak gerek. İkinci mesajında aynı şeyi yazmışsın. Show. show un yaptığı sadece ekrana form ve üzerindekileri gösterir ve ilgili eventleri tetikletir.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Re: Butonların bazen tıklamaması
Merhaba,enesharun yazdı: ↑04 Nis 2019 08:33 Merhabalar arkadaşlar,
Hazırladığım bir proje mevcut ve şuan iki yerde kullanılıyor. Fakat işyerinde yoğunluk olduğu zaman program kilitleniyor. Bazen butonlar tıklıyor ama butonun açması gereken ekranlar hiç açılmıyor, sadece butona tıklandığını fark edebiliyoruz. Sorunu bir türlü çözemedim. buton altındaki kodlarım o an çalışmıyor.
Acil desteğe ihtiyacım var.
NOT: butonların açacağı ekranların kodları örneğin şu şekilde:
Application.createform(TSatisEkran, SatisEkran);
SatisEkran.showmodal;
Burada sıkıntı olabilir mi?
Sorununuz sadece form oluşturma kaynaklı olmayabilir. Genel olarak uygulamanızı incelemeniz ve varsa kaydettiğiniz log kayıtlarını incelemeniz grekir.
Ancak, tamamen detay bilmeden yapabileceğim tahmin, uygulamanızın her buton basıldığında bir miktar daha fazla hafıza kaçağı oluşturduğu ve belli bir süre sonra işletim sistemi limitlerine dayanarak SWAP dosyası kullanımı vb sebebi ile tıkanmalar yaşadığınız yönünde.
Daha önce tavsiye edildiği gibi Form oluşturma kodunuz "tehlikeli". Mevcut yöntemi tüm form oluşturmalarınız için aşağıdaki gibi değiştirmenizi tavsiye ederim.
Kod: Tümünü seç
var
Form: TSatisEkran;
begin
Form := TSatisEkran.Create(Self);
try
Form.ShowModal();
finally
Form.Free();
end;
Ayrıca, Eğer "yeni" olarak tabir edilen Delphi sürümlerinden birisini kullanıyor iseniz aşağıdaki değişkeni "geliştirme zamanında" açıp uygulamanızı test eder iken aynı zamanda hafıza kaçağı olup olmadığını da test etmiş olabilirsiniz.
Kod: Tümünü seç
program Project2;
uses
Vcl.Forms,
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3};
{$R *.res}
begin
ReportMemoryLeaksOnShutdown := True; // <=== TRUE yapılması gereken global değişken
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.Run;
end.
Re: Butonların bazen tıklamaması
Hepinize teşekkür ederim. Formların action:=close ve form1:=nil olayları ile destroy ve close olaylarında çözüldü.