Table Ögesinin Olayları


Makale dizimizin  bu bölümünde table öğesinin olaylarını öğreneceğiz. Table öğesi kayıtlarla ilgili işlemlerinizi kontrol etmeniz için bazı olaylar içerir. Bu olaylar bir işlemin yapılmasından önce yada sonra olan olaylardır. Olayların oluş sırasını After (önce) Before (sonra) takıları ile anlarız. Örneğin Cancel yordamı çalıştırılıp değişlikler iptal edilmeden önceki Cancel olayına BeforeCancel iptal edildikten sonraki Cancel olayına AfterCancel denir. Aşağıda olaylar Before ve After takıları koyulmadan anlatılacaktır. Fakat anlatılacak bütün olayların Before ve After takıları mevcuttur.

Cancel: Aktif kayıt üzerinde değişiklik yapıldığında bu değişiklikleri iptal etmek için Table öğesinin Cancel yordamı çağırılır. Cancel yordamı çağırıldığında ise Cancel olayı oluşur. Eğer uygulamanızın Cancel yordamı kullanıldığında bir iş yapmasını istiyorsanız Cancel olaylarını kullanın.
Örnek:
procedure TForm1.Table1AfterCancel(DataSet: TDataSet);
begin
    StatusBar1.SimpleText := 'Kayıtta yapılan değişiklikler iptal edildi' ;
end;
Close:Close olayı uygulama bir tabloyu kapatmaya çalıştığında meydana gelir.Örneğin güvenlik sağlamak için bir uygulama veri seti kapatılırken veritabanı öğesinin params özelliğinden PASSWORD girdisini silebilir. Table öğesinin state özelliği dsInActive olduğunda da Close olayı oluşur.
Örnek:
procedure TForm1.Table1AfterClose(DataSet: TDataSet);
begin
    StatusBar1.SimpleText :=  Table1.TableName+' tablosu kapatıldı';
end;
Delete:Delete olayı uygulama aktif kaydı silmeye çalıştığında oluşur. Bu Table öğesinin Delete yordamını çağırarak olur. Tablonuzdan bir kayıt silinmeden önce onay isterseniz yada silindikten sonra bir mesaj görüntülemek isterseniz bu olayı kullanabilirsiniz.
Örnek: 
procedure
 TForm1.Table1AfterDelete(DataSet: TDataSet);
begin
   Application.Messagebox('Kayıt Başarı ile Silindi','Bilgi', MB_ICONINFORMATION + MBOK);
end;
Edit:Edit olayı aktif kayıt üzerinde bir değişiklik yapmaya başladığınızda oluşur. Bu olayı Edit metodunun çağırılması meydana getirir. Eğer kaydınız değiştikten sonra yada önce herhangi bir işlem yapmak isitiyorsanız Edit olaylarının sağladığı yordamları kullanmalısınız.
Örnek:
procedure TForm1.Table1AfterEdit(DataSet: TDataSet);
begin
   Application.Messagebox(inttostr(Table1.Recno)+' nolu kayıt değiştirildi','Bilgi', MB_ICONINFORMATION + MBOK);
end;
Insert:Insert olayı Tabloya yeni bir kayıt eklerken oluşur. Bu olayı Insert  metodunun çağırılması meydana getirir. Eğer kaydınız eklenirken herhangi bir işlem yapmak isitiyorsanız Insert olaylarının sağladığı yordamları kullanmalısınız.
Örnek:
procedure TForm1.Table1AfterInsert(DataSet: TDataSet);
begin
   Application.Messagebox('Yeni Kayıt Eklendi','Bilgi', MB_ICONINFORMATION + MBOK);
end;
Open:Open olayı tablonun açılması ve Table öğesinin state özelliğinin dsBrowse olması ile oluşur.Open olaylarını örneğin kullanıcını tabloyu açması sonucu daha önce tablo kapatılırken kaldığı yere geri dönmesi için yazılacak kodlar için kullanabiliriz. Böylece kullanıcı nerede kaldığını kolayca bulabilir.
Örnek:
procedure TForm1.Table1AfterOpen(DataSet: TDataSet);
var
Reg:TRegistry;
begin
  try
    Reg:=TRegistry.Create;
    reg.RootKey:=HKEY_LOCAL_MACHINE;
    reg.OpenKey('software\kahvebahane\tablesettings',FALSE);
    Table1.recno:=reg.ReadInteger('nerdeydim');
  finally
    reg.free;
  end;
end;
Post:Post olayı tablo üzerinde bir değişiklik gerçekleştiğinde oluşur. Bu değişiklikler tabloya yeni bir kayıt eklenmesi aktif kaydın değiştirilmesi yada silinmesi olabilir. Post olayını tabloda herhangi bir değişiklik olup olmadığını anlamak için kullanabilirsiniz.
procedure TForm1.Table1AfterPost(DataSet: TDataSet);
begin
   Application.Messagebox('Tabloda Bir Değişiklik Yapıldı','Bilgi', MB_ICONINFORMATION + MBOK);
end;
Scroll:Scroll olayı tablo imlecinin kayıtlar arasında hareket etmesi sonucu oluşur.Bu olayın oluşması için mutlaka First, Last, MoveBy, Next, Prior, FindKey, FindFirst, FindNext, FindLast, FindPrior, ve Locate metotlarından en az biri kullanılmalıdır. Bu Olayla ilgili örnek önceki bölümde verilmiştir.

Yorum Gönder

xxxxxx