MDIChild form kapatma sorunu

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
Kullanıcı avatarı
mcuyan
Üye
Mesajlar: 28
Kayıt: 04 Eki 2010 10:47

MDIChild form kapatma sorunu

Mesaj gönderen mcuyan »

Merhaba arkadaşlar.. haftalardır çözemediğim bir konu hakkında size sorum olacak..
ana formum (mdi form) ve 30 küsür tane de mdi formum (mdichild ) mevcut. Formların Hepsini:

if not assigned(form13) then
begin
form13:=tform13.Create(application);
end
else
tform13(form13).BringToFront;

bu şekilde açıyorum ve:
Self.Free; (action:cafree de oluyor)
form5:=Nil;

bu şekilde kapatıyorum..

Fakat 1 form varki kapatırken (ama bazen) access violation hatası veriyor..
bazen 2-3 kere açıp kaaptıyorum vermiyor.. ama 4. de veriyor..

sanırım hafızada açık kalıyor.. ve yeniden açmaya kalkınca yeniden sıkıntı veriyor.. yani ilk açılışda değil.. ama 2-3 denemeden sonraki ya açılışda yada kapanışda hata veriyor..

---------------------------
Debugger Exception Notification
---------------------------
Project sncari.exe raised exception class EAccessViolation with message 'Access violation at address 0057EA53 in module 'sncari.exe'. Read of address 35443445'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------


gibi.. bunu memoryden komple terminate yapma şansımız varmı? application.terminate gibi..

Saygılarımla
M.Cihan UYAN
M.Cihan UYAN
SNC Tech&Soft
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: MDIChild form kapatma sorunu

Mesaj gönderen csunguray »

Kod: Tümünü seç

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;
kullanın. Formu kendi içerisinde Free yapmak doğru bir yaklaşım değildir. Çünkü formun bir method unun içerisindeyken kendini yok ediyorsunuz. Normalde her seferinde Access Violation almanız gerekir.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Kullanıcı avatarı
mcuyan
Üye
Mesajlar: 28
Kayıt: 04 Eki 2010 10:47

Re: MDIChild form kapatma sorunu

Mesaj gönderen mcuyan »

merhaba..
onu kullanıyordum zaten.. ama yine de acceess violation hatası veriyordu kapatırken.. neyseki sorunu buldum.. ben runtime da bazı componentlerin enabled ini false yapıp true yaptırıryordum.. meğerse ör: bi panelin enabled i false iken bu formu kapamaya çalıştığımızda bu sorunu veriyormuş.. sorunu hallolmutur. teşekkürler yine.de...
M.Cihan UYAN
SNC Tech&Soft
Cevapla