Разработка баз данных в Delphi. 11 Уроков



         

 Использование TDataSource для проверки состояния БД: - часть 3


    Edits[i].Text := Table1.Fields[i - 1].AsString;

end;

Всякий раз, когда вызывается Table1.Next, или любой другой из навигационных методов, то будет вызвана процедура показанная выше. Это обеспечивает то, что все редакторы всегда содержат данные из текущей записи.

          Всякий раз, когда вызывается Post, нужно выполнить противоположное действие, то есть взять информацию из редакторов и поместить ее в текущую запись. Выполнить это действие, проще всего в обработчике события TDataSource.OnUpdateData, которое происходит всякий раз, когда вызывается Post:

procedure TForm1.DataSource1UpdateData(Sender: TObject);

var

  i: Integer;

begin

  for i := 1 to 5 do

    Table1.Fields[i - 1].AsString := Edits[i].Text;

end;

          Программа будет автоматически переключатся в режим редактирования каждый раз, когда Вы вводите что-либо в одном из редакторов. Это делается в обработчике события OnKeyDown (укажите этот обработчик ко всем редакторам):

procedure TForm1.Edit1KeyDown(Sender: TObject;

  var Key: Word; Shift: TShiftState);

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.




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