Arkadaşlar bir program yazıyorum sorunsuz şekilde ilerlerken sanırım SetFocus; olayını kullandıktan sonra programımı kapatırken aşağıdaki hata mesajını almaya başladım.
baya da kod yazmıştım onun için hatanın nereden kaynaklandığını bulmakta zorluk çekiyorum sizce sorun ne olabilir?
Formun veya üzerinde çalıştığın bileşenin onClose veya onDestroy kısmında inherited prosedüründen sonra yazdığın kodlar exceptiona neden oluyor olabilir.
Destructor XXX(TWinControl).Destroy;
Begin
Inherited;
....procedure, event controller, vs..
End;
Eğer component üzerinde çalışıyorsanız Inherited prosedüründen sonra form memoryden atılmış olabilir ve siz formun halen aktif olduğunu varsayarak bazı işlemler yapıyor olabilirsiniz.
onDestroy hiç kullanmadım bir iki yerde onClose kullanmıştım onlarıda iptal ettim ama hala devam ediyor..
Programı açtığım anda ilk önce bir şifre ekranım var daha o ekranda işlem yapmadan kapattığım zamanda bu hatayı alıyorum.
Şifre ekranımda ise herhangi bir onClose olayı da yok basit bir form ve 2 buton 2 edit hatta database den değil koddan kullanıcı kontrolü yaptırıyorum.
aveysel yazdı:
Programı açtığım anda ilk önce bir şifre ekranım var daha o ekranda işlem yapmadan kapattığım zamanda bu hatayı alıyorum.
Bu şifre ekranında işlem yaptığı sırada create ettiğin bir nesneye daha sonra ulaşmaya çalışıyorsan ve şifre ekranında işlem yapmadığı için de create olmadığından bu hatayı veriyor olabilir.
Şire ekranında nasıl bir uygulaman var ? "Ok" deyince ve "Cancel" deyince ortak işletilen satırları tespit et. Onları test amaçlı remark { } altına al, öyle dene..
Bu tarif samanlıkta bir iğneyi tarif ediyor. Bize samanlığı daha detaylı tarif edersen belki benzeri bir şekilde daha önce o iğneyi bulan birisi aynı şeyi senin için tarif edebilir. Aksi halde buradan bir çözüm çıkarmak olanaksız gibi görünüyor. Ama eğer istersen bu hatanın çıktığı yeri try-except içine alırsan mesajın gelmesini önleyebilirsin.
Tabi bu duruma göre delphi hata satırını yine getirecektir fakat .exe dosyasını direk çalıştırırsanız mesaj gelmez. Tabi çıkan hatayı bilinçsizce bertaraf etmek çok sağlıklı bir yöntem değildir. Sizin tarifinize göre bunun bir sakıncası olmadığı kanaatindeyim. Kolay gelsin.
Şaban Şahin AKMAN
_________________ Derin olan kuyu değil kısa olan iptir. - .