kapatma ekranı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
pasa_yasar
Üye
Mesajlar: 570
Kayıt: 07 Haz 2004 12:35

kapatma ekranı

Mesaj gönderen pasa_yasar »

iyi çalışmalar;

programı kapatırken bir form çağırıp çıkış ,yedek veya kapat buttonları koydum. form ana formun onclose bölümüne yerleştirdim. yedekleme veya çıkış oluyor fakat vazgeç butonuna tıklayıp ana forma dönmek istedeğimde olmuyor. close yaptığımda program kapanıyor. ana formu tekrar show yaptığımda mevcut form kapanıyor sürekli açık kalıyor. ana formun show veya active olayına kapatma formunu kapat yazıyorum fkat kapatmıyor
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: kapatma ekranı

Mesaj gönderen aslangeri »

s.a.
onclose a yazarsan kapat formunda vazgeç e basıldının anlayıp ana formun action olayına canoneatarsan kapatma işlemni iptal eder.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Re: kapatma ekranı

Mesaj gönderen hi_selamlar »

S.A.

ana formu kapatmak yerine ana formu gizle.
eğer kullanıcı vazgeç derse o zaman formunu kapatıp ana formunu tekrar göster yaparak işleme devam ettirebilrsin.

Kod: Tümünü seç

ShowWindow(handle, SW_HIDE veya SW_SWOW); gibi...
Kolay gelsin..
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
pasa_yasar
Üye
Mesajlar: 570
Kayıt: 07 Haz 2004 12:35

Re: kapatma ekranı

Mesaj gönderen pasa_yasar »

ana formun açık durması lazım onun için gizleyemem. aslangerinin yazdığı canone action nasıl olacak. yardımcı olursanız sevinirim tşk.
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: kapatma ekranı

Mesaj gönderen qamyoncu »

showmodal fonksiyonunu kullanabilirsin..
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Kullanıcı avatarı
pasa_yasar
Üye
Mesajlar: 570
Kayıt: 07 Haz 2004 12:35

Re: kapatma ekranı

Mesaj gönderen pasa_yasar »

onclose de showmodal yapıyorum fakat kapatma formunu kapattığımda tüm program kapanıyor. kapat formunda vazgeç tıkladığımda anaform.show yapsam dahi yine program kapanıyor.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: kapatma ekranı

Mesaj gönderen aslangeri »

şöyle yapabilirsin

Kod: Tümünü seç

//burası ana formun onclose olayı
...
if uyariformu.showmodal=mrcancel then action:=canone;
...
tabiki uyarıformundaki vazgeç düğmesinin kodlarıda şöyle olmalı

Kod: Tümünü seç

//uyarı formundaki vazgeç düğmesinin kodu
....
modalresult:=mrcancel;
//modalresult a değer atadığın zaman form otomatik olarak kapatılır ayrıca close yazmana gerek yok
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
pasa_yasar
Üye
Mesajlar: 570
Kayıt: 07 Haz 2004 12:35

Re: kapatma ekranı

Mesaj gönderen pasa_yasar »

Kod: Tümünü seç

[DCC Error] Unit1.pas(4057): E2010 Incompatible types: 'TBasicAction' and 'TCacheAssociativity'
şeklinde bir hata verdi. google baktım çözemedim. acaba sorun nedir nasıl çözülür.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: kapatma ekranı

Mesaj gönderen aslangeri »

hata verdiği satırdaki kodlara bakmak lazım.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
pasa_yasar
Üye
Mesajlar: 570
Kayıt: 07 Haz 2004 12:35

Re: kapatma ekranı

Mesaj gönderen pasa_yasar »

ana formdaki kodlar

Kod: Tümünü seç

if form26.showmodal=mrcancel then
action:=canone;
kapatma formundaki kodlar

Kod: Tümünü seç

modalresult:=mrcancel;

hatayı ana formdaki kodlarda veriyor.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: kapatma ekranı

Mesaj gönderen aslangeri »

ana formdaki kodları hangi olaya yazdın?
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
pasa_yasar
Üye
Mesajlar: 570
Kayıt: 07 Haz 2004 12:35

Re: kapatma ekranı

Mesaj gönderen pasa_yasar »

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if form26.showmodal=mrcancel then
action:=canone;
end;
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Re: kapatma ekranı

Mesaj gönderen TRSoft »

Ben böyle durumlarda anaformun OnCloseQuery yordamını tercih ediyorum..

Kod: Tümünü seç

     CikForm := TCikForm.Create(nil);
     islem:=-1;
     try
          CikForm.ShowModal;
     finally
          CikForm.Free;
          case Islem of //buradaki islem değişkenine cikformdan basılan butona göre değer atıyorum
               0: CanClose := True; //Programdan çıkış
               1: 
                    begin
                         CanClose := False;
                         //.......işlemler.. Örneğin yedek alma
                    end;
               2:
                    begin
                         CanClose := False;
                         //......işlemler.. 
                    end;
               -1: CanClose := False; //burasıda açılan formun hiç birşeye basılmadan (örneğin alt+f4 ) kapatılma ihtimali için 
          end;
     end;
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Kullanıcı avatarı
pasa_yasar
Üye
Mesajlar: 570
Kayıt: 07 Haz 2004 12:35

Re: kapatma ekranı

Mesaj gönderen pasa_yasar »

kapatma formundan ana forma label kullanarak numara verdirdim. dışarıdan islem değerine nasıl değer atayacam. yaptım çalışmadı. form açılıyor fakat vazgeç,yedekle veya buna benzer hiç bir işlem çalışmıyor. örnek bir uygulama gönderebilirseniz çok iyi olur.
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Re: kapatma ekranı

Mesaj gönderen TRSoft »

AnaFormunda gloabal bir değişken tanımla ve cikisformunda degiskene deger atayıp çıkış formunu kapat

örneğin

Kod: Tümünü seç

procedure TCikForm.VazgecButton1Click(Sender: TObject);
begin
     AnaUnit.Islem := 0;
     Close;
end;

procedure TCikForm.YedekAlButton1Click(Sender: TObject);
begin
     AnaUnit.Islem := 1;
     Close;
end;
Sonra bu değişkeni üstteki mesajımdaki gibi kontrol edip istediğin işlemleri yaptırırsın..
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Cevapla