Delphi Formlarını Kapatırken sıfırlamak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

Delphi Formlarını Kapatırken sıfırlamak

Mesaj gönderen sarp_halit »

Merhaba Arkadaşlar,

formu gösterip kapattıktan sonra tekrar açtığımızda en son kullandığımız veriler form üzerinde duruyor. bunun için delphi içinde kullanabileceğim bir yöntem var mı? her bir form için kapanışta form üzerindeki her bir bileşen için ayrı ayrı komut yazmaktansa bunu tek bir şekilde yapabileceğim bir kod var mı?

demek istediğim bir formda bir adoquery kullanıyorsunuz ama diğerinde yok. birinde 5 tane edit var ama diğerinde sadece 4 ve bir de combobox. yani her bir form için adoyu kapat, diğer formda editleri temizle vs gibi yapmaktansa tek bir fonksiyon ile hem veritabanı bileşenlerini kapatacak hem de editleri ve buna benzer bileşenleri temizleyecek bir fonksiyon var mı ya da nasıl yazabilirim?

bu arada ben free olayını denedim ama access violation hatası verdi.
Fethiye den herkese sevgiler ...
X))@:>
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Delphi Formlarını Kapatırken sıfırlamak

Mesaj gönderen Battosai »

Bir tane procedure yazıp bu sorunu halledebilirsiniz...Formdaki nesneleri döngü ile bulup nesneye göre istenilen işlemi yaptırabilirsin...Ufak bir örnek

Kod: Tümünü seç

With Form2 do Begin
for i:= 0 to ComponentCount-1 do 
Begin
 if Components[i] is TEdit then TEdit(Components[i]).Clear;
 if Components[i] is TAdoConnection then TAdoConnection(Components[i]).Close;
End;
End;
yada....Daha basiti ve tavsiye edileni formlarınızı lazım olduğunda create edip kapatıncada free etmektir. Böylece form her zaman ilk ayarında açılır...
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: Delphi Formlarını Kapatırken sıfırlamak

Mesaj gönderen emin_as »

Normalde delphi formadaki bilgileri saklamaz, yani sen pencereyi kapatınca bilgiler de silinir. Fakat sen pencereyi kapatmıyor, görünmez yapıyorsun. Bu nedenle tekrar açılınca önceki bilgiler görünüyor.

Modal formlar için aşagıdaki işlemleri yapabilirsin.

Kod: Tümünü seç

Form2:=TForm2.Create(Self);
Form2.ShowModal;
Form2.Free;
Modal olmayan formlar içinse, form u kapatırkan free etmen, gösterirken de create etmen gerekir.

Kod: Tümünü seç

// pencere acma fonksiyonu
Form2:=TForm2.Create(Self);
Form2.Show;
// Form2 nin kendini kapatırken free etmesi için
// Form2 nin OnClose eventine aşagıdakini yazmalısın
Action:=caFree;
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

Re: Delphi Formlarını Kapatırken sıfırlamak

Mesaj gönderen sarp_halit »

çok teşekkür ederim arkadaşlar.

emin_as senin yönteminle ben bu olayı çözmüş bulunmaktayım emeğine sağlık. diğer arkadaşlarıma da ilgilerinden dolayı çok teşekkür ederim. yaw her seferinde bütün bileşenleri tek tek kontrol etmek ne kadar da zordu :(

neyse arkadaşlar. çok sağolun.
Fethiye den herkese sevgiler ...
X))@:>
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

Re: Delphi Formlarını Kapatırken sıfırlamak

Mesaj gönderen sarp_halit »

şimdi ben istediğim olayı hallettim de bir de bir sıkıntı oluştu. formlardan bir tanesni showmodal yaptıktan sonra butona tıklandığında iki tane daha form açtırmaya çalışıyorum. bu formlardan bir tanesini panelin içine gömüyorum. ama yukarıda bahsedilen şekilde formu kod ile kendimi oluşturunca showmodal ettiğim formu close edersem diğer formlar da açılmıyor.

Kod: Tümünü seç

procedure TfrmPolsecim.btnYansitClick(Sender: TObject);
begin
  frmdispanel_hasta:=Tfrmdispanel_hasta.Create(Self);
  frmdispanel_hasta.show;
  frmDispanel_Calisan:=TfrmDispanel_Calisan.Create(Self);
  frmDispanel_Calisan.Parent:=frmAnaform.pnlFormlar;
  frmDispanel_Calisan.BorderStyle:=bsNone;
  frmDispanel_Calisan.Align:=alClient;
  frmDispanel_Calisan.Show;
  //Self.close;
end;
eğer formu hide edersem bu sefer oluşturduğum diğer formlara müdahale edemiyorum. gerçi panele gömülü olan formu kullanacağım diğeri ikinci ekranda çıkacak. bir yorumu olan arkadaş var mı acaba?

teşekkür ederim
Fethiye den herkese sevgiler ...
X))@:>
Cevapla