我用以下組件寫了一個具有數據瀏覽,新增,修改,刪除等功能的程式。
TDBEdit
TDBNavigator
TDBGrid
TADOQuery當新增一筆資料時,有時,等光隸移到TDBEdit組件錄入數據時,由於TADOQuery太靈活了,自動滾動,於是新增的尚未填寫資料的行會取消。本想用TADOQuery及這些數據敏感組件可以不用寫太多代碼就可以實現一定功能的程式。可是靈活的東西不好控制。
我想達到如下功能:
當新增一筆時,只有當必要的資料填寫完整後才可以滾動,或是按了TDBNavigator上的POST或CANCEL才可以取消親增狀態滾動到其他行。
偶寫了如下代碼:
procedure TfrmMain.adoqCustBeforeScroll(DataSet: TDataSet);
begin
 if dataset.State in [dsinsert] then
   if ((dataset.FieldByName('').asstring='') or(dataset.FieldByName('').asstring='') then
   abort;
end;
可是連TDBNavigator上的POST或CANCEL也不起作用了。哪位有好的方法。請賜教。