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.
Delphi Formlarını Kapatırken sıfırlamak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- 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
Fethiye den herkese sevgiler ...
X))@:>
X))@:>
Re: Delphi Formlarını Kapatırken sıfırlamak
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
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...
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;
Re: Delphi Formlarını Kapatırken sıfırlamak
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.
Modal olmayan formlar içinse, form u kapatırkan free etmen, gösterirken de create etmen gerekir.
Modal formlar için aşagıdaki işlemleri yapabilirsin.
Kod: Tümünü seç
Form2:=TForm2.Create(Self);
Form2.ShowModal;
Form2.Free;
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;
- 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
ç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.
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))@:>
X))@:>
- 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
ş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.
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
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;
teşekkür ederim
Fethiye den herkese sevgiler ...
X))@:>
X))@:>