Ana Form da Child Formların Açılıp kapanışını Yakalamak
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.
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.
Ana Form da Child Formların Açılıp kapanışını Yakalamak
Slm Arkadaşlar
Ana Form um var Bu formda child formlar açıyorum lazım oldıkça birden fazla
ben her child form yada normal formun açıldığında ve kapandığında bişiler yapmak istiyorum mesela açılan formun caption unu alıp bir listeye koyacağım bu liste anaformda sonra kapanında listeden çıkaracağım
Bunu nasıl yapabilirim valla mesajlara baktım bulamadım
ama bunu sadece ana formun içerisine ekleyeceğim bir mesaj yakalama procedure ile yapmam lazım
yardımcı olursanız evinirim Teşekkürler
Ana Form um var Bu formda child formlar açıyorum lazım oldıkça birden fazla
ben her child form yada normal formun açıldığında ve kapandığında bişiler yapmak istiyorum mesela açılan formun caption unu alıp bir listeye koyacağım bu liste anaformda sonra kapanında listeden çıkaracağım
Bunu nasıl yapabilirim valla mesajlara baktım bulamadım
ama bunu sadece ana formun içerisine ekleyeceğim bir mesaj yakalama procedure ile yapmam lazım
yardımcı olursanız evinirim Teşekkürler
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Ana Form da Child Formların Açılıp kapanışını Yakalamak
Child formlarını açarken ve kapatırken ayrıca yazdığın bir fonksiyon içinden çalıştır ve gerekli kodu buraya yaz. Mesela..:fonksiyonları ile formlarını açar ve kapatırsan açılış ve kapanışları yakalamış olursun. Ayrıca formlarının yok edilirken (onDestroy veya onClose olaylarından uygun olanında) çalıştıracağın bir prosedürle de formlarının kapanışlarını yakalayabilirsin.
Kod: Tümünü seç
function FormAc(const FormSinifi:TComponentClass;var Form):Boolean;
var Bilesen: TComponent;
begin
Result:=True;
try
if not Assigned(TComponent(Form)) then begin
Bilesen := TComponent(FormSinifi.NewInstance);
TComponent(Form) := Bilesen;
Bilesen.Create(Application);
end;
with TForm(Form) do begin
Show;
end;
//.......form açılırken yapılacak işler burada yapılabilir
except
on E:Exception do begin
TComponent(Form) := nil;
Result:=False;
ShowMessage('Bir hata oluştu ->'+E.Message);
end;
end;
end;
//--------------------------------------------
function FormKapat(var Form):Boolean;
begin
try
FreeAndNil(TComponent(Form));
//......form kapatılırken yapılacak işler de bu prosedürde
except
on E:Exception do begin
Result:=False;
ShowMessage('Bir hata oluştu ->'+E.Message);
end;
end;
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Ana Form da Child Formların Açılıp kapanışını Yakalamak
Bu dediğiniz yöntem ile yapmak biraz zor benim için çünki formların yok edilmesi kendi içinde oluyor
ve oluşturulmasıda ayrı ayrı yerlerde
bu nedenler ana form üzerinden bir mesaj ile child oluştu ve chılk kapandı gibi bir mesaj alarak yapmam lazım
başka türlü işime yaramaz şu anda yapıyı değiştirmem lazım Teşekkür ederim ilginiz için
Nasıl olabilir acaba 1 haftadır bakmadığım yer kalamadı arkadaşlar
ve oluşturulmasıda ayrı ayrı yerlerde
bu nedenler ana form üzerinden bir mesaj ile child oluştu ve chılk kapandı gibi bir mesaj alarak yapmam lazım
başka türlü işime yaramaz şu anda yapıyı değiştirmem lazım Teşekkür ederim ilginiz için
Nasıl olabilir acaba 1 haftadır bakmadığım yer kalamadı arkadaşlar
İzlen
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Ana Form da Child Formların Açılıp kapanışını Yakalamak
Ayrı yerde oluşan form nasıl oluşuyor, gökten zembille inmiyordur sanırımIZLEN yazdı:...formların yok edilmesi kendi içinde oluyor
ve oluşturulmasıda ayrı ayrı yerlerde..

Kod: Tümünü seç
Form2:=TForm2.Create(Application);
Kod: Tümünü seç
Application.CreateForm(TForm2,Form2);
Kod: Tümünü seç
FormAc(TForm2,Form2);
Bir de formunun kapanış olayı için
Kod: Tümünü seç
procedure Kapaniyor(Form:TForm);
begin
//....
end;
Kod: Tümünü seç
Kapaniyor(Self);
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Ana Form da Child Formların Açılıp kapanışını Yakalamak
Slm Arkadaşım eğer program yapısınını sizn dediğiniz gibi tasarlamş olsaydım söylediğiniz gibi yapabilirdim
ama her child formu başka bir procedure da açıyorum ve panışını kendi içinde yapıyorum dolayısı ile bi sürü kod yazmam lazım
bunun yerine bir mesaj procedure ile ana formda bu mesaşları yakalayıp halletmek istiyorum yani
bu yönde destek olursanız sevinirim çünki program hali hazırda kullanılıyor
Teşekkürler
ama her child formu başka bir procedure da açıyorum ve panışını kendi içinde yapıyorum dolayısı ile bi sürü kod yazmam lazım
bunun yerine bir mesaj procedure ile ana formda bu mesaşları yakalayıp halletmek istiyorum yani
bu yönde destek olursanız sevinirim çünki program hali hazırda kullanılıyor

Teşekkürler
İzlen
Re: Ana Form da Child Formların Açılıp kapanışını Yakalamak
sabanakman olayı güzel anlatmış.Meseleyi ya sen anlamıyon yada anlatamıyorsun mesela;
burda ne demek istiyorsun pek anlaşılmıyor kapanışı kendi içinde yapmakla neyi kastediyorsun verilen kodlar ile kapatılmıyor mu yani...her child formu başka bir procedure da açıyorum ve panışını kendi içinde yapıyorum
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Ana Form da Child Formların Açılıp kapanışını Yakalamak
Aslında arkadaş suya sabuna dokunmak istemeden işi bitirmek istemiş. Olsun!. Onun da yolu var. Kendimiz bir TForm sınıfı yazarız ve bu sınıfın bulunduğu uniti diğer formlarda en sonda tanımlarız. Meselakodlarını KendiFormum.pas ismi ile kayıt edip, projemize ekleyelim ve tüm formlarda bulunan üstteki uses satırında en sona KendiFormum unit'ini ekleyelim. Özellikle Forms'dan sonra yazılmasına dikkat edilmeli. Bu şekilde KendiFormum unitinin tanımladığı tüm formların açılış ve kapanış anları yukarıdaki kodlar sayesinde yakalanacaktır.Gibi. İyi çalışmalar.
Kod: Tümünü seç
unit KendiFormum;
interface
uses Dialogs, Forms;
type
TForm = class(Forms.TForm)
protected
procedure DoHide; override;
procedure DoShow; override;
procedure DoClose(var Action: TCloseAction); override;
end;
implementation
{ TForm }
procedure TForm.DoHide;
begin
inherited DoHide;
ShowMessage('Gizleniyor');
end;
procedure TForm.DoShow;
begin
inherited DoShow;
ShowMessage('Açılıyor');
end;
procedure TForm.DoClose(var Action: TCloseAction);
begin
inherited DoClose(Action);
ShowMessage('Kapanıyor');
end;
end.
Kod: Tümünü seç
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Spin, ExtCtrls, Buttons, Gauges, Eklentiler,
AppEvnts, DB, ADODB, {---->} KendiFormum{<----};
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Ana Form da Child Formların Açılıp kapanışını Yakalamak
Evet Arkadaşım sonunda oldu işte istediğimi bu yolla halledebilirim
hay Allah ben nasıl düşünemedim yaaa
Arkadaşım Çok Teşekkür Ederim Süper Olacak şimdi istediğim yani
hay Allah ben nasıl düşünemedim yaaa

Arkadaşım Çok Teşekkür Ederim Süper Olacak şimdi istediğim yani
İzlen