Message Form Tasarım OnClose Eventinde Çağırma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Nomercy
Üye
Mesajlar: 62
Kayıt: 17 Kas 2014 12:33

Message Form Tasarım OnClose Eventinde Çağırma

Mesaj gönderen Nomercy »

Arkadaşlar Ben Şöyle Bir Form Tasarladım;

Resim

Bunu Formun OnClose Eventine Eklemeye Çalıştım.Ama Kapat Butonuna Bastığımda AnaForm Kendini Kapatıp bu Formu Gösteriyor Burdan Hayır Butonuna Bastığımda Tekrar AnaForm Açılıyor Bunu AnaForm Kapanmadan Nasıl Yapabilirim?

Formun OnClose Bölümüne Sadece Şu Kodu Yazdım;

Kod: Tümünü seç

FrmProgramKapat.Show;
Formdada ActionList Var Evete ActionListi Bağladım. Hayır Butonundada Close; Kodu Var.

Yardımcı Olurmusunuz?
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Message Form Tasarım OnClose Eventinde Çağırma

Mesaj gönderen ikra »

formun onclose eventi form kapanmadan önce devreye girer ve ne yapmasi gerektigini Action parametresi ile sana sorar.
tam burada bir formu showmodal halinde gösterirsin yada dialog penceresi acar soru sorarsin.
Hayir tusuna basildiginda parametreyi Action := caNone; seklinde isaretlersin. Form kapanmaz.
kıdemsiz üye
Nomercy
Üye
Mesajlar: 62
Kayıt: 17 Kas 2014 12:33

Re: Message Form Tasarım OnClose Eventinde Çağırma

Mesaj gönderen Nomercy »

ShowModal Yaparak AnaForm Kapanmaz Hale Geldi Ama Şimdi

Resim

Hayır Butonuna Bastığımda Kullanıcı Girişi Yaparken Bilgiler Doğruysa Ekran Klavyesi Kullanmak İstermisiniz? Diye Soru Sordurmuştum.

Yani Şu Form;
Resim

O Form Geliyor Şİmdide :) Anlamadım Gitti.Aynı Olayı Application.MessageBox ta Yaptım O İstediğim Gibi Çalışıyor. Ama Ben Form İle Yapmak İstiyorum.

Application.MessageBox da Kullandığım Kod Şöyle;

Kod: Tümünü seç

var a:integer;
begin
a:=Application.MessageBox('Programı Kapatmak İstediğinizden Emin misiniz?','Programı Kapat',MB_YESNO+MB_ICONQUESTION);
if a=idyes then
begin
AnaForm.Action:=ActnCikis;
AnaForm.Click;
end
else
action:=Canone;
end;
end;
Ben Bu Olayı MessageBox Yerine Form İle Yapmak İstiyorum Beceremedim.ShowModal Yaptığımda Evet Butonuna Bastığımda Çalışıyor Hayır Butonunda Çalışmıyor.Yani Hayır Butonuna Tıkladığımda AnaForm Kapanıyor ve Ekran Klavyesi İsteyip İstemediğini Soran Form Geliyor.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Message Form Tasarım OnClose Eventinde Çağırma

Mesaj gönderen mrmarman »

OnCloseQuery denemiş miydiniz? Canclose := true false sizin işinizi görür
Resim
Resim ....Resim
Nomercy
Üye
Mesajlar: 62
Kayıt: 17 Kas 2014 12:33

Re: Message Form Tasarım OnClose Eventinde Çağırma

Mesaj gönderen Nomercy »

mrmarman yazdı:OnCloseQuery denemiş miydiniz? Canclose := true false sizin işinizi görür
Bunu Hangi Forma Yazmam Gerek? Ana Form mu Yoksa Tasarladığım Message Formu?

Düzeltme:

Ben İkisine de Yazdım Olmadı Neyi Hangi Forma Yazacağım Bir Açıklama Yaparmısınız Hocam :)
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Message Form Tasarım OnClose Eventinde Çağırma

Mesaj gönderen mrmarman »

Bu mesaj ekinde örnek proje var.
Kaynak kodu da aşağıdaki gibi..
Ana Formundaki Kodlar

Kod: Tümünü seç

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if NOT Assigned(Form2) then
    Application.CreateForm(TForm2, Form2);

  CanClose := Form2.ShowModal = mrYes;
end;

Unit2 yani programdan çıkılsın mı mesajını içeren form

Kod: Tümünü seç

procedure TForm2.BitBtn1Click(Sender: TObject);
begin
  Close;
  ModalResult := mrYes;
end;

procedure TForm2.BitBtn2Click(Sender: TObject);
begin
  Close;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  action := caFree;
end;

procedure TForm2.FormDestroy(Sender: TObject);
begin
  Form2 := Nil;
end;
Resim
Dosya ekleri
OnCloseQuery_CanClose_Ornegi.rar
OnCloseQuery form ile "Programdan Çıkılsın mı?" onayı içeren örnektir.
(168.19 KiB) 51 kere indirildi
Resim
Resim ....Resim
Nomercy
Üye
Mesajlar: 62
Kayıt: 17 Kas 2014 12:33

Re: Message Form Tasarım OnClose Eventinde Çağırma

Mesaj gönderen Nomercy »

Hocam Teşekkür Ediyorum Size

Yalnız Şöyle Bir Durum Oldu Ben Kullanıcı Girişi Yaptırdığım İçin Kullanıcı Giriş Formunu Gizliyordum Şimdi Bunu Yapınca Kapatıyor ama Tam Kapanmıyor Form Gizlendiği İçin :) Tamamen Kapanması İçin Ne Yapmam Gerek?
Cevapla