Delphi для профессионалов

         

Быстрый переход к помеченным записям


Закладки, как инструмент работы с записями набора данных, позволяют осуществлять быстрое перемещение на нужную запись. Набор данных может содержать неограниченное число закладок, каждая из которых представляет собой указатель. Закладку можно создать только для текущей записи набора данных.

При работе с закладками используются три основных метода:

  •  метод GetBookmark создает новую закладку для текущей записи;
  •  метод GotoBookmark осуществляет переход к закладке, переданной в параметре;
  •  метод FreeBookmark удаляет закладку, переданную в параметре.

Кроме этого, можно использовать метод Bookmarkvalid, который проверяет, указывает ли закладка на реально существующую запись. Метод compareBookmark позволяет сравнить между собой две закладки:

var Bookmarkl, Bookmark2: TBookmark;

...

if Tablel.CompareBookmark(Bookmarkl, Bookmark2) = 1

 then ShowMessage (' Закладки одинаковы') ;

В наборе данных имеется свойство Bookmark, которое содержит название текущей закладки.

Рассмотрим небольшой пример, где право управлять закладками предоставлено пользователю (рис. 14.4). На форме, помимо других элементов управления (среди которых есть компонент TDBGrid), имеются две кнопки. Кнопка startBookmark помечает текущую запись, кнопка stopBookmark переходит к закладке, а затем уничтожает ее.

Рис. 14.4. Главная форма проекта DemoBookmark 

Листинг 14.2. Пример использования закладок .

implementation

{$R *.DFM}

var SaveRecPos: TBookMark;

procedure TMainForm.FormShow(Sender: TObject);

 begin 

try

Cust.Open;

BookmarkControl.Brush.Color := clBtnFace;

 except

ShowMessage('Ошибка открытия набора данных');

 end; 

end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);

 begin

Cust.Close;

 end;

procedure TMainForm.StartBookmarkClick(Sender: TObject); 

begin

if Not Cust.BookmarkValid(SaveRecPos) 

then SaveRecPos := Cust.GetBookmark;

BookmarkControl.Brush.Color := cILime

 end;

procedure TMainForm.StopBookmarkClick(Sender: TObject);

 begin

with Cust do begin if Not BookmarkValid(SaveRecPos)

then Exit;

GotoBookmark(SaveRecPos);

 FreeBookmark(SaveRecPos);

 SaveRecPos := Nil; 

end;

BookmarkControl.Brush.Color := clBtnFace;

 end;

end.

Использование метода Bookmarkvaiid позволяет корректно переопределять закладку, если она уже установлена, и избежать ошибок при произвольных нажатиях кнопок. Компонент BookmarkControl типа TShape сигнализирует о том, что закладка установлена или удалена.

 Примечание

Закладки также используются в компоненте TDBGrid. Он имеет свойство SelectedRows типа TBookmarkList, которое представляет собой список закладок, указывающих на одновременно выделенные записи.

 

Содержание раздела