Merhaba,
Kendi kullanımım için hazırlamakta olduğum bir programda (Delphi 7 ile yazıyorum) TEmbeddedWB bazan yeni bir IE sayfası açıyor. Bu davranışın hangi fonksiyon tarafından niçin tetiklendiğini bilemiyorum. Amacım bu durumu yakalamak ve tetiklenmesini engellemek. Çünkü bu davranış sadece işime yaramayan bir hata mesajı veriyor ve ben bu hata mesajı pencerelerini manuel olarak kapatmak zorunda kalıyorum.
Eğer başka çare bulamazsam, kendim tüm olası fonksiyonlara her çalıştıklarında zamanı da kapsayan bir log kaydı yaratmaları için birer ekleme yapacağım.
Beni bu angaryadan kurtarabilecek bildiğiniz hazır bir loglama çözümü var mı?
Teşekkürler.
Delphi 7 için otomatik event loglama sistemi var mı?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Delphi 7 için otomatik event loglama sistemi var mı?
Daha fazla dayanamadım ve tüm fonksiyon ve prosedürlere tetiklenme zamanlarını ve yerini bir log dosyasına yazmalarını sağladım.
Bu düzenleme 2 sonuç verdi:
1- Daha önce çok daha sık aralıklarla çıkan hata penceresi, bu kez neredeyse hiç çıkmadı
2- Hiç bir fonksiyon veya prosedür yeni pencere açılmasını yakalayamadı.
İlk sonucu doğal karşılıyorum. Program daha yavaş çalışmak zorunda kaldığı için sistem kaynaklarını tüketmesi de eskisi kadar kolay olmuyordur.
İkinci sonuç ise bu pencerelerin benim programım tarafından değil, büyük olasılıkla işletim sisteminin kendisi tarafından açılıyor olduğunu gösteriyor.
Kısacası, programın sorgulama pencerelerini oluşturma hızını yavaşlatırsam, büyük olasılıkla bu hata mesajı pencereleri de hiç açılmayacak.
İlginiz için teşekkür ederim.
İyi çalışmalar.
Not: OnBeforeNavigate2 prosedüründe kullandığım loglama satırı şöyle:
ErrorLog, boolean bir değişken ve log tutulması istendiğinde açılıyor.
Edit1Text bir string ve test edilen IP numarasını tutuyor.
Bu düzenleme 2 sonuç verdi:
1- Daha önce çok daha sık aralıklarla çıkan hata penceresi, bu kez neredeyse hiç çıkmadı
2- Hiç bir fonksiyon veya prosedür yeni pencere açılmasını yakalayamadı.
İlk sonucu doğal karşılıyorum. Program daha yavaş çalışmak zorunda kaldığı için sistem kaynaklarını tüketmesi de eskisi kadar kolay olmuyordur.
İkinci sonuç ise bu pencerelerin benim programım tarafından değil, büyük olasılıkla işletim sisteminin kendisi tarafından açılıyor olduğunu gösteriyor.
Kısacası, programın sorgulama pencerelerini oluşturma hızını yavaşlatırsam, büyük olasılıkla bu hata mesajı pencereleri de hiç açılmayacak.
İlginiz için teşekkür ederim.
İyi çalışmalar.
Not: OnBeforeNavigate2 prosedüründe kullandığım loglama satırı şöyle:
Kod: Tümünü seç
if ErrorLog then fErrorLog.Memo1.Lines.Add(Edit1Text+'-BeforeNavigate2-'+FormatDateTime('HH:NN:SS.ZZZ',Now));
ErrorLog, boolean bir değişken ve log tutulması istendiğinde açılıyor.
Edit1Text bir string ve test edilen IP numarasını tutuyor.