32 Урока Borland Delphi



              

Урок 19 - часть 21


begin

if DataSource1.State <> dsEdit then

Table1.Edit;

end;

Этот код показывает, как Вы можете использовать св-во State DataSource, чтобы определить текущий режим DataSet.

Обновление метки в статусной панели происходит при изменении состояния таблицы:

procedure TForm1.DataSource1StateChange(Sender: TObject);

var

s : String;

begin

case DataSource1.State of

dsInactive : s:='Inactive';

dsBrowse : s:='Browse';

dsEdit : s:='Edit';

dsInsert : s:='Insert';

dsSetKey : s:='SetKey';

dsCalcFields : s:='CalcFields';

end;

Label6.Caption:=s;

end;

Данная программа является демонстрационной и ту же задачу можно решить гораздо проще, если использовать объекты TDBEdit.
 
 

  • Отслеживание состояния DataSet
  • В предыдущей части Вы узнали, как использовать TDataSource, чтобы узнать текущее состоянии TDataSet. Использование DataSource - это простой путь выполнения данной задачи. Однако, если Вы хотите отслеживать эти события без использования DataSource, то можете написать свои обработчики событий TTable и TQuery:

    property OnOpen

    property OnClose

    property BeforeInsert

    property AfterInsert

    property BeforeEdit

    property AfterEdit

    property BeforePost

    property AfterPost

    property OnCancel

    property OnDelete

    property OnNewRecord

    Большинство этих свойств очевидны. Событие BeforePost функционально подобно событию TDataSource.OnUpdateData, которое объяснено выше. Другими словами, программа STATE работала бы точно также, если бы Вы отвечали не на DataSource1.OnUpdateData а на Table1.BeforePost. Конечно, в первом случае Вы должен иметь TDataSource на форме, в то время, как во втором этого не требуется.




    Содержание  Назад  Вперед