Nomadic советует:
TFieldDataLink. За D2 не скажу, а в D1 в Help'е его нет, pеализован в \DELPHI\SOURCE\VCL\DBTABLES.PAS.
type TMyForm = class(TForm) {...} Table1: TTable; DataSource1: TDataSource; private FDL : TFieldDataLink; procedure RecChange(Sender: TObject); public {...} end; procedure TMyForm.FormCreate(Sender: TObject); begin FDL:=TFieldDataLink.Create; FDL.OnDataChange := RecChange; FDL.DataSource := DataSource1; FDL.FieldName := 'MyFieldName'; end; procedure TTabEditDlg.FormDestroy(Sender: TObject); begin FDL.Free; end; procedure TTabEditDlg.MasterChange(Sender: TObject); begin {... тут pеагиpуй на изменения ...} end; |
За отслеживание различных событий, происходящих с TDataSource, в иерархии VCL отвечает класс TDataLink. TFieldDataLink - наследник, который выполняет маскирование событий, не относящихся к конкретному столбцу набора данных.
Если надо отслеживать изменения в любом столбце набора, используйте TDataLink. Если необходимо отслеживать события для некоторого подмножества строк набора данных, посмотрите на реализацию TGridDataLink. [001338]