Geçersiz pencere işleci ('System Error. Code: 1400 )

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
F.Atagun
Üye
Mesajlar: 158
Kayıt: 01 Oca 2008 01:56

Geçersiz pencere işleci ('System Error. Code: 1400 )

Mesaj gönderen F.Atagun »

Selamlar,

Projemde bazen geçersiz pencere işlemi hatası oluşuyor. Çözemediğim nokta, bu hatayı arada bir vermesi aynı yerde 2. kez denediğimde bu kez vermemesi . Hangi formda hata oraya verdiyse oraya bakıyorum ama 2. kez aynı noktad hata vermediği için göremiyorum.

Neredeyse programın tüm Formlarında ara sıra da olsa bu hatanın meydana geliyor.

Acaba Ramden mi kaynaklanıyor diye düşünüp , Ofisteki tüm PClerde 30 dakikalık bir test sonucunda her PCde farklı formda hata verdi.

Forumda bu konuda çok az bilgi yer almaktadır. Nesneye ulaşılamadı diye bir açıklama okudum. Başka bir sorun olabilir mi ?

Programımı komple nasıl test edebilirim ? A'dan Z'ye bu hatayı nasıl tarayabilirim ?

Kod: Tümünü seç

---------------------------
Debugger Exception Notification
---------------------------
Project MDIAPP.exe raised exception class EOSError with message 'System Error.  Code: 1400.
Geçersiz pencere işleci'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------




Teşekkürler
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Geçersiz pencere işleci ('System Error. Code: 1400 )

Mesaj gönderen mkysoft »

Bana sanki pointerlardan kaynaklanan değişken sorunları gibi geldi. Programınızda pointerları kullanıyor musunuz bilmiyorum. Aklıma gelen bir diğer seçenekse multithread yazdığınız kısımlar. Programın hangi özellikler içerdiğini yazarsanız belki daha iyi yönlendirebiliriz.
Kerimessi
Üye
Mesajlar: 2
Kayıt: 13 Ağu 2010 03:21

Re: Geçersiz pencere işleci ('System Error. Code: 1400 )

Mesaj gönderen Kerimessi »

bende de aynı sorun oluşuyor multithread kullanıyorum acaba nası düzletçem??
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Geçersiz pencere işleci ('System Error. Code: 1400 )

Mesaj gönderen thelvaci »

Büyük ihtimalle Grafiksel oluşturduğunuz nesneleri serbest bırakmıyorsunuz. Sistemde handle'ı elde edilebilecek belirli sayıda GDI nesnesi vardır. Eğer yazdığınız uygulama bir grafik uygulaması değilse ve özel olarak GDI kaynakları ayıran API'lerle ilgilenmiyorsanız, muhtemelen programınız içindeki formların Paint olay yöneticilerine yada WM_Paint mesaj yakalama metodlarına bakmalısınız. Siz bu olaylara kod yazmadı iseniz uygulamanız içinde kullandığınız componentler için bu araştırmayı yapmalısınız.

Sözün özü; işletim sisteminde handle edilebilecek max. GDI nesne sayısını sizin uygulamanız ve diğer uygulamalar aşıyor olabilir. Dolayısı ile sistem yeni bir grafiksel handle veremez duruma gelir. Oluşturulan grafik nesneleri handle'ları vasıtası ile tekrar yok edilmelidir.
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Re: Geçersiz pencere işleci ('System Error. Code: 1400 )

Mesaj gönderen akdatilla »

merhaba arkadaşlar
Bu sorun benim üzerinde çalıştığım programda da çıkıyor.
Multithread kullanıyorum. Program kapanmadan önce threadları durduruyorum. Sonradan ürettiğim bileşenleri form ondestroy olayından önce tektek bellekten atıyorum.
Programı satır satır çalıştırdığıma göre form ondestroy olayı bitiminden hemen sonra bu hata mesajını alıyorum (prosedürün sonunda f7 tuşuna bastığımda başka bir satıra geçmiyor.)
Bu konuda fikri olan varsa lütfen yazsın. Teşekkür ederim.
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Re: Geçersiz pencere işleci ('System Error. Code: 1400 )

Mesaj gönderen akdatilla »

thread içerisinde kullandığım bazı komutlar:
SysUtils.FileGetAttr
SysUtils.FindFirst
SysUtils.FindNext
SysUtils.FindClose
masks.MatchesMask
SendMessage

Bunların dışında sadece string işlem ve matematik fonksiyonları dışında bir işlem görünmüyor. Yukarıdaki komutların thread içerisinde kullanılması bir soruna sebebiyet verebilir mi?
nkeskin
Üye
Mesajlar: 1
Kayıt: 30 Ara 2013 02:19

Re: Geçersiz pencere işleci ('System Error. Code: 1400 )

Mesaj gönderen nkeskin »

herkese merhaba
bende aynı sorunu yaşadım. sorun aslında System Error. Code: 1400 hatası değil. başka bir hata var ve o da bu hatayla sonuclanıyor.
nemi demek istiyorum. anlatayım
mutithread fonksiyonlar çalıştırıken tedit ve tmemo gibi componentlere birşeyler yazdırıyorsanız thread hata oluşuyor ve buda başka bir hatayı tetikliyorve karşımıza System Error. Code: 1400 olarak görünüyor. bazen bir yerde hata yaparsanız (mantık hatası da olabilir) o delphinin kontrollerini geciyor ve bu başka bir hata ile karşılaşmanıza neden oluyor, eğer karşımıza çıkan hata mesajına göre işi çözmeye kalkarsak yanlış yerlerde debelenmekten başka işe yaramıyor.
nasıl mı çözdüm. (banada saçma geldi ama herşey yoluna girdi). thread le yaptıklarımı bir değişkene atayıp sonra o değişkendeki değeri tmemo ya yazdırınca hiç problemim kalmadı. bir timer ile değişkene yeni değer geldimi diye kontrol ediyorum ve tmemo ya aktarıyorum. 100 e yakın thread acıyorum programın calışması sırasında. hepsinde elde ettiğim sonuçları bir array aktarıyorum, array e yeni değer eklenmiş ise ekrana yazdırıyorum. çok sayıda thread kullanıyorsanız tmemo ve tedit e veri yazmada hata mutlaka oluşuyor ve düzensiz yani her zaman aynı yerde hata vermiyor,rastgele karşımıza çıkıyor. özellikle programı kapatmak istediğinizde bu hata mesajı ile karşılaşılıyor.
bulduğum çözüm bu inşallah işinize yarar. bende işe yaradı

iyi çalışmalar
Nazım
Cevapla