mdiform içinde child form çağırma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
mdiform içinde child form çağırma
iyi çalışmalar
bana mdiform içinde childformu çağırma hakkında bilgi veya fikirlerinizi iletirseniz çok sevinirim.uğraştım ama bir türlü mdiform içinde childformu çağıramadım.Yardım ve fikirleriniz için şimdiden teşekkürler.
İyi çalışmalar Arkadaşlar:=)
bana mdiform içinde childformu çağırma hakkında bilgi veya fikirlerinizi iletirseniz çok sevinirim.uğraştım ama bir türlü mdiform içinde childformu çağıramadım.Yardım ve fikirleriniz için şimdiden teşekkürler.
İyi çalışmalar Arkadaşlar:=)
MDI formdaki bir menuden su kod ile child formu cagiriyorum.... Tabi formu autocreate listesinden cikartiyorum. Yani form sadece cagirildigi zaman create ediliyor....
Child form olan FRM_KATEGORIK_MUSTERI un onclose'unda da
yazarak ayni formun birden fazla cagirilmasini engelemis oluyorum.
Kod: Tümünü seç
if (FRM_KATEGORIK_MUSTERI=NIL) then
FRM_KATEGORIK_MUSTERI:=TFRM_KATEGORIK_MUSTERI.Create(self);
FRM_KATEGORIK_MUSTERI.WindowState:=wsNormal;
FRM_KATEGORIK_MUSTERI.Show;
Kod: Tümünü seç
FRM_KATEGORIK_MUSTERI=nil;
Allah gönlünüze göre versin:=)
çok teşekkürler abi Ramazanınızda bu arada mübarek olsun
SELAM SAYGI DUA İLE
Hizmetlerinizden dolayı ALLAH razı olsun:=)
SELAM SAYGI DUA İLE
Hizmetlerinizden dolayı ALLAH razı olsun:=)
Estağfurullah.....
Bunu sormaniz iyi oldu zira aslinda nil atamadan önce de
şeklinde bir kodu yazmak gerektiğini unutmuştum. Fakat bu kodun çalışması ile form hafizadan gitse bile FRM_KATEGORIK_MUSTERI isimli değişken tekrar form olarak create edilmeden önceki hali olan nil durumuna dönmemekte. Ancak nil atamasi ile bu saglanabiliyor. Bundaki amaç da dediğim gibi formun birden fazla create edilmesini önlemek kodda görüldüğü üzere eğer nil ise create ediliyor. Form bir defa açılıp kapandığında eğer on close'da nil atanması yapılmaz ise de değişkenin değeri nil olmadığı için create edilme koduna girmiyor.
Tabi bu yöntem yoğurdu benim yeme tarzım. Yani başka alternatifler de olabilir. Uzun zamandır bu kodu kullanmaktayım.
Kolay gelsin....
Kolay gelsin....
Bunu sormaniz iyi oldu zira aslinda nil atamadan önce de
Kod: Tümünü seç
Self.Free;
Tabi bu yöntem yoğurdu benim yeme tarzım. Yani başka alternatifler de olabilir. Uzun zamandır bu kodu kullanmaktayım.
Kolay gelsin....
Kolay gelsin....
Merhaba,
arkadaşım baştan adım kullandığım yöntemi anlatıyim :
1. Bir form oluştur, mesela form2 olsun.
2. mdichild yap
3. Project-> options kısmından avaible forms kısmına al
formu göstermek için :
if Assigned(Form2) then //++
Form2.BringToFront //++
else //++
Form2 := TForm2.Create(Self);
yaz. Form2'nin OnClose olayına da :
Action := caFree;
Form2 := nil; //++
yaz. Hepsi bu kadar.
NOT : burada nil atamasını form eğer oluşturulmuş ise bir daha oluşturmak yerine öne getrimek için kullandım. Yani ben bu formun 2. sefer oluşturulmasını istemiyorum. Değilse sonunda //++ olan satırları sil.
Kolay gelsin.
arkadaşım baştan adım kullandığım yöntemi anlatıyim :
1. Bir form oluştur, mesela form2 olsun.
2. mdichild yap
3. Project-> options kısmından avaible forms kısmına al
formu göstermek için :
if Assigned(Form2) then //++
Form2.BringToFront //++
else //++
Form2 := TForm2.Create(Self);
yaz. Form2'nin OnClose olayına da :
Action := caFree;
Form2 := nil; //++
yaz. Hepsi bu kadar.
NOT : burada nil atamasını form eğer oluşturulmuş ise bir daha oluşturmak yerine öne getrimek için kullandım. Yani ben bu formun 2. sefer oluşturulmasını istemiyorum. Değilse sonunda //++ olan satırları sil.
Kolay gelsin.
Admin'nin mesajını kendi projemde kullandım.Ama bu sefer formum hiç açılmadı.Projede kullandığım kodları aşağıda gönderiyorum bir terslik varsa düzeltmenizi dileyerek
Saygılarımı sunuyorum
procedure TservisForm.ToolButton2Click(Sender: TObject);
var arzKytForm : TarzKytForm;
begin
if Assigned(arzKytForm) then
arzKytForm.BringToFront
else
arzKytForm := TarzKytForm.Create(Self);
end;
=====================================
procedure TarzKytForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DATAForm.arizaKayitADOQuery1.Cancel;
Action := caFree;
arzKytForm := nil;
end;
Saygılarımı sunuyorum
procedure TservisForm.ToolButton2Click(Sender: TObject);
var arzKytForm : TarzKytForm;
begin
if Assigned(arzKytForm) then
arzKytForm.BringToFront
else
arzKytForm := TarzKytForm.Create(Self);
end;
=====================================
procedure TarzKytForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DATAForm.arizaKayitADOQuery1.Cancel;
Action := caFree;
arzKytForm := nil;
end;
Merhaba,
hocam bir noktayı atlıyorsun demek ki. Sıfır bir proje oluşturup yazdıklarımı adım adım bir dene, olduğunu göreceksin.
Aklıma gelebilecek birkaç husus :
1. mdichild mı bir kontrol et.
2. var arzKytForm : TarzKytForm; satırına gerek yok. Formun unitini uses kısmına eklemen yeterli.
Kolay gelsin.
hocam bir noktayı atlıyorsun demek ki. Sıfır bir proje oluşturup yazdıklarımı adım adım bir dene, olduğunu göreceksin.
Aklıma gelebilecek birkaç husus :
1. mdichild mı bir kontrol et.
2. var arzKytForm : TarzKytForm; satırına gerek yok. Formun unitini uses kısmına eklemen yeterli.
Kolay gelsin.
s.a
hocam child form ekrana geliyor mesele yok
ama mdi olan formdaki bileşenler (örneğin button) child form çağrıldığında
da halen daha ekranda gözüküyor Ayrıca child form birkez çalıştırıldıktan sonra bi daha çalışmıyor.
ben mdi formdan child formu istediğimde(birden fazla) nasıl çağıracam
vede mdi form bileşenlerinin neden gözüktüğünü(childform üstünde gözüküyor) de anlamış deyilim.
iyi çalışmalar.
alttaki olayı aynen yaptım(sorunlu)
**********
1. Bir form oluştur, mesela form2 olsun.
2. mdichild yap
3. Project-> options kısmından avaible forms kısmına al
formu göstermek için :
if Assigned(Form2) then //++
Form2.BringToFront //++
else //++
Form2 := TForm2.Create(Self);
yaz. Form2'nin OnClose olayına da :
Action := caFree;
Form2 := nil; //++
***********
hocam child form ekrana geliyor mesele yok
ama mdi olan formdaki bileşenler (örneğin button) child form çağrıldığında
da halen daha ekranda gözüküyor Ayrıca child form birkez çalıştırıldıktan sonra bi daha çalışmıyor.
ben mdi formdan child formu istediğimde(birden fazla) nasıl çağıracam
vede mdi form bileşenlerinin neden gözüktüğünü(childform üstünde gözüküyor) de anlamış deyilim.
iyi çalışmalar.
alttaki olayı aynen yaptım(sorunlu)
**********
1. Bir form oluştur, mesela form2 olsun.
2. mdichild yap
3. Project-> options kısmından avaible forms kısmına al
formu göstermek için :
if Assigned(Form2) then //++
Form2.BringToFront //++
else //++
Form2 := TForm2.Create(Self);
yaz. Form2'nin OnClose olayına da :
Action := caFree;
Form2 := nil; //++
***********
A.S.
adım adım dene çalışacaktır hocam
Ben epey bir süredir doğruluğunu test ederek kullanıyorum bu yöntemi.
Kolay gelsin.
adım adım dene çalışacaktır hocam

bunuda not kısmında belirtmiştim. Sonunda //++ olan satırları silerseniz, bir childformda istediğiniz kadar oluşturabilirsiniz. Ancak bu sadece döküman tarzı işlemler yaparsanız faydalı. Ben pek tercih etmiyorum genelde.ben mdi formdan child formu istediğimde(birden fazla) nasıl çağıracam
Kolay gelsin.