Kapatırken Kayıt

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
loxka
Üye
Mesajlar: 214
Kayıt: 18 Ağu 2003 01:10

Kapatırken Kayıt

Mesaj gönderen loxka »

Eğer Table1'de değişiklik varsa table1'i kaydet
Aslında cümlem tam bu şekilde formun OnClose'una yazmak istedim.
fakat table1 datasoruce'nin de böyle bir procedure sahip değil, nasıl olabilir.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

mesela programındaki global bir boolean tipini ( programın açılışta FALSE yap) tablonun after post ve after editinde bu değişkeni set et.. programın closequerysinde eğer bu değer set edilmişse tablonu kaydet..
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

OnClose yerine OnCloseQuery de ;

Kod: Tümünü seç

var
  Onay: integer;
if Table1.State in [dsEdit, dsInsert] then
begin
  Onay := Application.MessageBox(PChar('Değişikleri kayıt edecek misiniz?), 'Onay',
      mb_IconQuestion + mb_YesNoCancel + mb_DefButton3);
  if Onay = idCancel then
    CanClose := False;
  if Onay = IdYes then
   Table1.Post;
  if Onay = IdNo then
   Table1.Cancel;
end;
şeklinde yaparsan kayıt formu kapatmakdan vazgeçme şansın da olur.
loxka
Üye
Mesajlar: 214
Kayıt: 18 Ağu 2003 01:10

Mesaj gönderen loxka »

hocam teşekkür ederim ama tam istediğim bu değil. Kullanıcıya sorulmadan kapatırken kaydetsin. Gönderdiğiniz kodda bir tercihtir tabii.
loxka
Üye
Mesajlar: 214
Kayıt: 18 Ağu 2003 01:10

Mesaj gönderen loxka »

Formun Onclose events' ına

Kod: Tümünü seç

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if table1.Modified then
table1.Post;
 end;
yerşeştirdim, işe yarıyor. Merak eden arkadaşlar olursa diye..
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

otomatik post etmesi her zaman mantıklı olmayabilir... doğrusu sen post et demediğin sürece cancel etmektir, formu kapatirken de...
ademcicek
Üye
Mesajlar: 409
Kayıt: 03 Eki 2003 01:50
Konum: Ankara

Mesaj gönderen ademcicek »

bu soruyu sorduracan unitin uses ini DB ünitini ekle.

sonra
if datasource.state=dsedit then
mesaj....
işlem
loxka
Üye
Mesajlar: 214
Kayıt: 18 Ağu 2003 01:10

Mesaj gönderen loxka »

Şöyle bir şey oldu ama güzel oldu işe de yarıyor yani :)

Kod: Tümünü seç

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin   
if (table1.Modified) and (datasource1.state=dsedit) then
Table1.Post
else
Form1.table1.next;
end;

end.
Cevapla