ApplicationEvents hakkında

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kayipgemi
Üye
Mesajlar: 88
Kayıt: 14 Kas 2005 03:07

ApplicationEvents hakkında

Mesaj gönderen kayipgemi »

arkadaslar kolaygelsin ufak bir problemim var yardımcı olabilirseniz sevinirim, bir proje var bu projenin anamenusunde 1 adet ApplicationEvents1 bileşenim var, bu bileşenin onException kısmında şöyle bir kod um var

Kod: Tümünü seç

anamenu.Memo1.Text := 'Program Hata Meydana Geldi...! '+ (DateTimeToStr(now) + ' ' +  e.ClassName+ ' ' + E.Message);
sormak istediğim şu, anamenu den bir kac form cagiriyorum ornegin arıza formu veya talep formu gibi ornegin ariza formunda iken uygulamada bir hata geldiği zaman kod çalışıyor benim bu kod a eklemek istediğim hangi formda hata meydana geldiyse onuda yazdırmak yani aktif formun captionunuda alıp hataya eklemek , umarım anlatabilmişindir yardımlarınız içim şimdiden teşekkür ederim.
aseka

Mesaj gönderen aseka »

--
En son aseka tarafından 18 Mar 2008 02:49 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
kayipgemi
Üye
Mesajlar: 88
Kayıt: 14 Kas 2005 03:07

Mesaj gönderen kayipgemi »

hocam teşekkür ederim ama TForm(sender).Caption tıkladığımız da ki butonun caption unu veriyor ben formun caption unu almak istiyorum nasıl yapabiliriz
KarizMan
Üye
Mesajlar: 60
Kayıt: 31 May 2005 09:13

Mesaj gönderen KarizMan »

Kod: Tümünü seç

procedure TForm1.ApplicationEvents1Exception(Sender: TObject; E: Exception);
begin

  Memo1.Text :=TForm(TForm(sender).Owner).Caption+ ' Başlıklı Formda Hata Meydana Geldi...! '+ (DateTimeToStr(now) + ' ' +  e.ClassName+ ' ' + E.Message);

end; 
bu şekilde olur hocam.
aseka

Mesaj gönderen aseka »

--
En son aseka tarafından 18 Mar 2008 02:50 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Amanııın ne yaptınız. Hiç sender aktif formmuş gibi düşünülür mü. Sender demek o olayı çalıştıran bileşenin kendisi demektir. Yani Sender=ApplicationEvents1'dir. Bunun yerine Screen.ActiveForm kullanarak o anda aktif olan pencereyi elde edebilirsiniz.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
kayipgemi
Üye
Mesajlar: 88
Kayıt: 14 Kas 2005 03:07

Mesaj gönderen kayipgemi »

yardımlarınız için teşekkür ederim kod calisti istediğim gibi oldu Allah Razı Olsun .. karizman arkadasımızın gönderdiği kod ile, hepenize teşekkür ederim sağolun.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Eğer o kod çalıştı ise nedeni, ApplicationEvents nesnesinin bulunduğu formda çalışıyor olmanızdandır. Eğer bileşeni farklı bir forma koyarsanız çalışmadığını görebilirsiniz. Sender söylediğim gibi o bileşeni temsil eder ve Owner özelliği ise TComponent sınıfına ait olduğundan o kodda hata oluşmamaktadır ve nesnenin bulunduğu formu verir. Bunu en iyi

Kod: Tümünü seç

procedure TForm1.ApplicationEvents1Exception(Sender: TObject; E: Exception); 
begin 

  Memo1.Text :=TForm(TForm(sender).Owner).Caption+ ' Başlıklı Formda Hata Meydana Geldi...! '+ (DateTimeToStr(now) + ' ' +  e.ClassName+ ' ' + E.Message); 

  Memo1.Add(TComponent(sender).Name+' - '+TComponent(sender).ClassName);
end;
kodunu deneyerek görebilirsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla