| Makale Tarihi : 15 Temmuz 2000
Yazan:Can Kaynak |
|
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.
Eğer Bu çalışmalarımı
desteklemek istiyorsanız lütfen aşağıdaki Linke tıklayıp üye olun. Tamamen
ücretsiz olan bu site;size 25 MB yer veriyor.Bana da 1$ veriyor. Böylece daha fazla
yazma şevki oluşacak ve size daha kaliteli bilgi verebileceğim.Unutmayın Ben
Size yardım için hep buradayım ve burada olacağım.

|