beceremedim bu sorunu çözmeyi..sizin söylediklerinizdede acsess voilation hatası veriyo.. şimdi iyice anlatayım sorunumu.. 8 tane butonum var.hepsi ayrı bi child formu açıyo..bide ana sayfam var buda direk program çalışınca ekrana geliyo.. yapmak istediğim bi butana basınca sadece o child form açılsın diğer tüm chil formlar kapansın..ama ekranda child form yoksa ve butana basınca diğer child formları kapatmaya çalışınca bulamdığı için hata veriyo bunu önlemem lazım...bişeyler yaptım olmadı..hep acssess voilation hatası veriyo..(bu ne hatası tam olarak)
bide child formalar "application create" la açılıyo..ve kapanırkende "cafree " kullnamıştım.
yani aslında yapılması gereken ilk önce sorgulamak varsa kapat yoksa bişey yapma formu aç..ama bu kadar basit bişeyi hala çözemedim..
bir tane boolean değişken tanımla. başlangıç olarak false değeri yükle (başlangıçta child form yoksa). child form açınca değerini true yap. tüm child formları kapatınca değerini false yap bu kadar basit anlattığına göre.. ama tabi ben yanlış anlamış olabilirim senin sorununu. Eğer 8 ayrı child form var ve hepsini ayrı ayrı çalışıyor mu diye takip edeceksen o zaman da 8 elemanlı bir boolean dizi işini görür.
beceremedim bu sorunu çözmeyi..sizin söylediklerinizdede acsess voilation hatası veriyo.. şimdi iyice anlatayım sorunumu.. 8 tane butonum var.hepsi ayrı bi child formu açıyo..bide ana sayfam var buda direk program çalışınca ekrana geliyo.. yapmak istediğim bi butana basınca sadece o child form açılsın diğer tüm chil formlar kapansın..ama ekranda child form yoksa ve butana basınca diğer child formları kapatmaya çalışınca bulamdığı için hata veriyo bunu önlemem lazım...bişeyler yaptım olmadı..hep acssess voilation hatası veriyo..(bu ne hatası tam olarak)
bide child formalar "application create" la açılıyo..ve kapanırkende "cafree " kullnamıştım.
yani aslında yapılması gereken ilk önce sorgulamak varsa kapat yoksa bişey yapma formu aç..ama bu kadar basit bişeyi hala çözemedim..
yardım edin.
Showing methodu formun bellekte olup olmadığını denetler. bu fonksiyon ile formun görünüp görünmediğini anlayabilirsin !
diyelim form1,form2,form3 formlar olsun!
form1.show; form2.show;
dedik;
if form1.showing = True then -> dersek true döner çünkü form1 bellekte
if form3.showing = True then -> dersek false döner çünkü show yapmadık.
bu şekilde anlarsın if kullanarak kendine göre bir mantık algoritması kur. Birde eğer Application.Createform methodunu kullanıyorsan formları asla close ile kapatma release yap yoksa pişman olursun
şimdi bir child form açmadan hepsinin kapanmasını istiyorsun yani. hımm. ozaman basit bir prosedur yazalım.
procedure CloseChildForms; var i: integer; begin for i:=0 to Form1.MDIChildCount - 1 do if Form1.MDIChildren is TForm2 then Form1.MDIChildren.Close; end;
şimdi buradaki form1 senin mdi formun oluyor.! form2 de mdichild formun oluyor. sakın karıştırma! sende programını buna göre düzenle. kodu denemedim. deneme imkanım yok zaten intnernet cafedeyim.:) ama büyük ihtimalle çalışır. bir hata olduğunu sanmıyorum.
şimdi iyice anlatayım sorunumu..
8 tane butonum var.hepsi ayrı bi child formu açıyo..bide ana sayfam var buda direk program çalışınca ekrana geliyo..
yapmak istediğim bi butana basınca sadece o child form açılsın diğer tüm chil formlar kapansın..ama ekranda child form yoksa ve butana basınca diğer child formları kapatmaya çalışınca bulamdığı için hata veriyo bunu önlemem lazım...bişeyler yaptım olmadı..hep acssess voilation hatası veriyo..(bu ne hatası tam olarak)
bide child formalar "application create" la açılıyo..ve kapanırkende "cafree " kullnamıştım.
yani aslında yapılması gereken ilk önce sorgulamak varsa kapat yoksa bişey yapma formu aç..ama bu kadar basit bişeyi hala çözemedim..
yardım edin.