Esselamun Aleyküm arkadaşlar,
programımın ana formu MDIForm ve bir menü formum var bu menu formum da MDIChildForm.
MDIChildForm 'um ana formla birlikte creat edilecek şekilde ayarlandı yani Project ---> options menüsünde Auto Creat Forms kısmında solda.
sistem normal çalışıyor ve programım çalışınca menü formumda otomatik olarak creat ediliyor sorun yok. menü formuma bir boton koydum ve butonun onclick olayına close; kodu var ve menü formunun onClose olayında ise;
begin
Action:=caFree;
frm_menu:=nil;
end;
ana formumda menüyü göster diye bir butonum var ve ben oyle bişiy yapmak istiyorum ki eğer frm_menu formum yani child formum zaten creat edilmişse etmeyecek ama close edilip serbest bırakıldıysa(caFree ve nil) yeniden creat edecek.
İlgi ve alakanız için şimdiden teşekkür ederim...
konu ile ilgisi var diye soruyorum
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 151
- Kayıt: 16 Eki 2006 10:43
- Konum: ERZURUM
Ve Aleyküm Selam Kardeşim,
Ana Form'un Unit'inin Var bloğunda bir tane değişken tanımla.Mesela :
Sonra frm_menu ' nün OnClose olayına satırını ekle.
Sonra Ana Form'daki menüyü göster butonuna şunu yaz
frm_menu'nün OnShow'unada
yaz.Kolay gelsin...
Ana Form'un Unit'inin Var bloğunda bir tane değişken tanımla.Mesela :
Kod: Tümünü seç
Deger : Boolean = True ;
Kod: Tümünü seç
Deger := False ;
Sonra Ana Form'daki menüyü göster butonuna şunu yaz
Kod: Tümünü seç
if Deger = True then
frm_menu.Show ;
else
begin
frm_menu := Tfrm_menu.Create(Self) ;
frm_menu.Show ;
end ;
Kod: Tümünü seç
Deger := True ;
akıllanma , aklını başına toplama , toparlanma , kendisini derleme bu dünyaya ait bir vazife.
ahirette nasıl olsa aklın başına gelecek.
ahirette nasıl olsa aklın başına gelecek.
alaka gösterdiğin için sağol kardeşim ama ...
sanırım gözden kaçırmış olmalısın frm_menu formumun close olayında o formu bellekten siliyorum yani
Action:=caFree;
Frm_Menu:=nil;
komutu bence o boolean değerin içerisindeki bilgiyi siler diye düşünüyorum hem silmese bile sonuça ben frm_menu formunu ceFree dediğim için tekrar showla çağıramam yani yeniden creat etmem gerekir..
neden bellekten sildiğim konusuna gelince eğer oyle yapmayıp da direk close dersem formu kapatmıyor sadece alta atıyor bu de cok amatörce geliyor bana..
yinede cok teşekkür ederim alakan için.
Allah Razı olsun..
Action:=caFree;
Frm_Menu:=nil;
komutu bence o boolean değerin içerisindeki bilgiyi siler diye düşünüyorum hem silmese bile sonuça ben frm_menu formunu ceFree dediğim için tekrar showla çağıramam yani yeniden creat etmem gerekir..
neden bellekten sildiğim konusuna gelince eğer oyle yapmayıp da direk close dersem formu kapatmıyor sadece alta atıyor bu de cok amatörce geliyor bana..
yinede cok teşekkür ederim alakan için.
Allah Razı olsun..
oguthan
eyvahhhhh !!!!
Kardeşim hakkını helal et dikatli okumamışım dikkatli bir şekilde okuduğum zaman mantıklı geldi büyük ihtimalle çalışacak hemen deniyorum.
Özür dilerim..
Özür dilerim..
oguthan
s.a.
şöyle bir fonksiyon işini görür sanırım.
fonksiyon parametre olarak verilen formclasında ve isminde bir form varmı kontrol ediyor yoska create ediyor varsa geriye oformu referans döndürüyor.
kullanımı
kolay gelsin.
şöyle bir fonksiyon işini görür sanırım.
Kod: Tümünü seç
Function TFMain.TanimformunuGoster(fc: TFormclass; fa: string):TForm;
var
i:integer;
begin
for i:=0 to FMain.MDIChildCount-1 do
begin
result:=fmain.MDIChildren[i];
if result.Name=fa then
begin
result.BringToFront;
result.SetFocus;
if result.WindowState=wsminimized then
result.WindowState:=wsNormal;
exit;
end;
end;
result:=fc.Create(application.MainForm);
end;
kullanımı
Kod: Tümünü seç
TanimformunuGoster(Tfrm_menu,'frm_menu');
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim