Строго кажучи, компонент TDBNavigator (навігатор БД) не призначений для відображення даних. Його призначення - дати користувачеві програми зручний засіб пересування записів НД і полегшити йому такі дії, як вставка нового запису, а також редагування і видалення існуючої записи. Однак навігатор БД використовується тільки спільно з компонентами візуалізації, тому мені здається цілком доречним розглянути його особливості саме в цьому уроці.
На рис. 6.11 показані кнопки навігатора.
Мал. 6.11. Кнопки навігатора БД
Про First - встановлює курсор на перший запис;
Про Prior - встановлює курсор на попередній запис;
Про Next - встановлює курсор на наступний запис;
Про Last - встановлює курсор на останній запис;
Про Insert - переводить НД в режим вставки нового запису;
Про Delete - видаляє поточний запис;
Про Edit - переводить НД в режим редагування;
Про Post - запам'ятовує зміни, зроблені в поточному записі;
Про Cancel - скасовує зміни, зроблені в поточному записі;
Про Refresh - оновлює НД (для TQuery - тільки якщо запит оновлюваний).
За допомогою властивості DataSource компонент зв'язується з потрібним джерелом даних TDataSourсе - це все, що необхідно для його нормальної роботи. Представлене нижче властивість управляє відображенням діалогового вікна з проханням підтвердити видалення запису (значення True цієї властивості виводить вікно):
property ConfirmDelete: Boolean;
Якщо таке властивість має значення True, кнопки будуть плоскими, в іншому випадку - об'ємними:
property Flat: Boolean;
За допомогою іншого властивості можна відображати тільки ті кнопки навігатора, які дійсно необхідні:
type TNavigateBtn = (nbFirst, nbPrior, nbNext, nbLast,
nblnsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh);
type TButtonSet = set of TNavigateBtn;
property VisibleButtons: TButtonSet;
Наприклад, якщо НД є результатом виконання неоновлювані запиту, в навігаторі має сенс залишити тільки перші 4 кнопки.
За допомогою наступного методу можна імітувати клацання на потрібній кнопці навігатора:
procedure BtnClick (Index: TNavigateBtn); Для компонента визначено два специфічних події:
type ENavClick = procedure (Sender: TObject;
Button: TNavigateBtn) of object; property BeforeAction: ENavClick; property OnClick: ENavClick;
Оброблювач першої події отримує управління перед виконанням дії, пов'язаного з клацанням на кнопці Button, в той час як обробник OnClick - після виконання дії.