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

□ метод FreeBookmark удаляет закладку, переданную в параметре.

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

var Bookmarkl, Bookrrark2 : TBookrrark;
if Tablel.CompareBookmark(Bookmarkl, Bookrrark2) =1 then ShowMessage (' Закладки одинаковы') ;

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

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

Программирование в Delphi 7

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

j Листинг 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 := clLime

end ;

procedure TMainForm,StopBookmarkClick(Sender: TObject) ; begin with Cust do

begin if Not BookmarkValid(SaveRecPos)

then Exit;
GotoBookmarк(SaveRecPos);
FreeBookmarк(SaveRecPos);
SaveRecPos := Nil;
end;
BookmarkControl.Brush.Color := clBtnFace;
end;

end.

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

Примечание J

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

Диапазоны

В наборе данных, помимо фильтров, имеется еще одно средство отбора записей. Группа методов позволяет на основе использования индексов отбирать в набор данных только те записи, значения индексированных полей которых (для текущего индекса) соответствуют диапазону заданных величин.

Диапазоны работают быстрее фильтров, но менее гибки и не так удобны в работе. При использовании диапазонов набор данных обязательно должен находиться в состоянии dsSetKey (см. ниже).

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

( Примечание )

Все методы работы с диапазонами используют те поля, которые заданы в текущем индексе. Для таблиц Paradox и dBASE это свойство indexName. Для таблиц серверов SQL это свойство IndexFieldNames.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Декабрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс