Table Öğesinin 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.