FAQ VCL
Компоненты\DBNavigator

:: Меню ::
:: На главную ::
:: FAQ ::
:: Заметки ::
:: Практика ::
:: Win API ::
:: Проекты ::
:: Скачать ::
:: Секреты ::
:: Ссылки ::

:: Сервис ::
:: Написать ::

:: MVP ::

:: RSS ::

Яндекс.Метрика

Как убрать пиктограммы с кнопок DBNavigator?

// Способ первый
uses
  {...,} DBCtrls;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  s: string;
begin
  s := 'A';
  with DBNavigator1 do
    for i := 0 to ControlCount-1 do
      if Controls[i] is TNavButton then
        with TNavButton(Controls[i]) do
        begin
          Glyph := nil;
          Caption := s;
          Inc(s[1]);
        end;
end;

//Способ второй
uses
  {...,} DBCtrls;

procedure TForm1.Button1Click(Sender: TObject);
begin
  TNavButton(DBNavigator1.Controls[Ord(nbFirst)] ).Glyph := nil;
  TNavButton(DBNavigator1.Controls[Ord(nbFirst)] ).Caption := 'A';
  // Вместо nbFirst могут быть следующие значения:
  // nbFirst, nbPrior, nbNext, nbLast, nbInsert,
  // nbDelete, nbEdit, nbPost, nbCancel, nbRefresh
end;


Как изменить пиктограммы на кнопках DBNavigator?

// Способ первый
uses
  {...,} DBCtrls;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  with DBNavigator1 do
    for i := 0 to ControlCount-1 do
      if Controls[i] is TNavButton then
        with TNavButton(Controls[i]) do
        begin
          // Картинка размером 16x32 состоит из 2 фреймов:
          // 1 - для активной кнопки, 2 - для не активной
          NumGlyphs := 2;
          // Картинка должна быть в формате BMP
          Glyph.LoadFromFile('c:\NewGlyphs.bmp');
        end;
end;

//Способ второй
uses
  {...,} DBCtrls;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // Картинка размером 16x32 состоит из 2 фреймов:
  // 1 - для активной кнопки, 2 - для не активной
  TNavButton(DBNavigator1.Controls[Ord(nbFirst)] ).NumGlyphs := 2;
  // Картинка должна быть в формате BMP
  TNavButton(DBNavigator1.Controls[Ord(nbFirst)]).Glyph.LoadFromFile('c:\NewGlyphs.bmp');
  // Вместо nbFirst могут быть следующие значения:
  // nbFirst, nbPrior, nbNext, nbLast, nbInsert,
  // nbDelete, nbEdit, nbPost, nbCancel, nbRefresh
end;


Как изменить значение свойства Enabled у кнопок DBNavigator?

// Способ первый
uses
  {...,} DBCtrls;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  with DBNavigator1 do
    for i := 0 to ControlCount-1 do
      if Controls[i] is TNavButton then
        with TNavButton(Controls[i]) do
          Enabled := not Enabled;
end;

//Способ второй
uses
  {...,} DBCtrls;

type
  TDBNavigator = class(DBCtrls.TDBNavigator);

implementation

procedure TForm1.Button1Click(Sender: TObject);
begin
  with DBNavigator1 do
    Buttons[nbFirst].Enabled := not Buttons[nbFirst].Enabled;
  // Вместо nbFirst могут быть следующие значения:
  // nbFirst, nbPrior, nbNext, nbLast, nbInsert,
  // nbDelete, nbEdit, nbPost, nbCancel, nbRefresh
end;

//Способ третий
uses
  {...,} DBCtrls;

procedure TForm1.Button1Click(Sender: TObject);
begin
  TNavButton(DBNavigator1.Controls[Ord(nbFirst)]).Enabled :=
    not TNavButton(DBNavigator1.Controls[Ord(nbFirst)]).Enabled;
  // Вместо nbFirst могут быть следующие значения:
  // nbFirst, nbPrior, nbNext, nbLast, nbInsert,
  // nbDelete, nbEdit, nbPost, nbCancel, nbRefresh
end;


Как настроить всплывающие подсказки в DBNavigator?

// Способ первый
uses
  {...,} DBCtrls;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  with DBNavigator1 do
    for i := 0 to ControlCount-1 do
      if Controls[i] is TNavButton then
        with TNavButton(Controls[i]) do
        begin
          // Подсказка включается индивидуально для каждой кнопки
          ShowHint := True;
          case Index of
            nbFirst: Hint := 'Подсказка для кнопки First';
            nbPrior: Hint := 'Подсказка для кнопки Prior';
            nbNext: Hint := 'Подсказка для кнопки Next';
            nbLast: Hint := 'Подсказка для кнопки Last';
            nbInsert: Hint := 'Подсказка для кнопки Insert';
            nbDelete: Hint := 'Подсказка для кнопки Delete';
            nbEdit: Hint := 'Подсказка для кнопки Edit';
            nbPost: Hint := 'Подсказка для кнопки Post';
            nbCancel: Hint := 'Подсказка для кнопки Cancel';
            nbRefresh: Hint := 'Подсказка для кнопки Refresh';
          end;
       end;
end;

//Способ второй
uses
  {...,} DBCtrls;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // Подсказка включается для всех кнопок сразу
  DBNavigator1.ShowHint := True;
  // Замена подсказок "по умолчанию"
  with DBNavigator1.Hints do
  begin
    Clear;
    Add('Подсказка для кнопки First');
    Add('Подсказка для кнопки Prior');
    Add('Подсказка для кнопки Next');
    Add('Подсказка для кнопки Last');
    Add('Подсказка для кнопки Insert');
    Add('Подсказка для кнопки Delete');
    Add('Подсказка для кнопки Edit');
    Add('Подсказка для кнопки Post');
    Add('Подсказка для кнопки Cancel');
    Add('Подсказка для кнопки Refresh');
  end;
end;

//Способ третий
uses
  {...,} DBCtrls;

type
  TDBNavigator = class(DBCtrls.TDBNavigator);

implementation

procedure TForm1.Button1Click(Sender: TObject);
begin
  DBNavigator1.ShowHint := True;
  with DBNavigator1 do
    Buttons[nbFirst].Hint := 'Подсказка для кнопки First';
  // Вместо nbFirst могут быть следующие значения:
  // nbFirst, nbPrior, nbNext, nbLast, nbInsert,
  // nbDelete, nbEdit, nbPost, nbCancel, nbRefresh
end;

//Способ четветрый
uses
  {...,} DBCtrls;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // Подсказка включается для всех кнопок сразу
  DBNavigator1.ShowHint := True;
  TNavButton(DBNavigator1.Controls[Ord(nbFirst)]).Hint := 'Подсказка для кнопки First';
  // Вместо nbFirst могут быть следующие значения:
  // nbFirst, nbPrior, nbNext, nbLast, nbInsert,
  // nbDelete, nbEdit, nbPost, nbCancel, nbRefresh
end;


Как скрыть ненужные кнопки в DBNavigator?

uses
  {...,} DBCtrls;

procedure TForm1.Button1Click(Sender: TObject);
begin
  DBNavigator1.VisibleButtons := DBNavigator1.VisibleButtons - [nbFirst];
  // Вместо nbFirst могут быть следующие значения:
  // nbFirst, nbPrior, nbNext, nbLast, nbInsert,
  // nbDelete, nbEdit, nbPost, nbCancel, nbRefresh
end;


Как проверить видимость нужной кнопки в DBNavigator?

uses
  {...,} DBCtrls;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if nbFirst in DBNavigator1.VisibleButtons then
    ShowMessage('Кнопка First является видимой');
  // Вместо nbFirst могут быть следующие значения:
  // nbFirst, nbPrior, nbNext, nbLast, nbInsert,
  // nbDelete, nbEdit, nbPost, nbCancel, nbRefresh
end;


Как нажимать кнопки DBNavigator при помощи клавиатуры?

uses
  {...,} DBCtrls;

procedure TForm1.FormCreate(Sender: TObject);
begin
  KeyPreview := True;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
const
 KeyBtn: array[TNavigateBtn] of record
           Key: Word;
           Btn: TNavigateBtn;
         end = ((Key: VK_F1;  Btn: nbFirst),
                (Key: VK_F2;  Btn: nbPrior),
                (Key: VK_F3;  Btn: nbNext),
                (Key: VK_F4;  Btn: nbLast),
                (Key: VK_F5;  Btn: nbInsert),
                (Key: VK_F6;  Btn: nbDelete),
                (Key: VK_F7;  Btn: nbEdit),
                (Key: VK_F8;  Btn: nbPost),
                (Key: VK_F9;  Btn: nbCancel),
                (Key: VK_F10; Btn: nbRefresh));
var
  i: TNavigateBtn;
begin
  for i := nbFirst to nbRefresh do
    if KeyBtn[i].Key = Key then
    begin
      DBNavigator1.BtnClick(KeyBtn[i].Btn);
      Break;
    end;
end;

procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
begin
  ShowMessage(TNavButton(DBNavigator1.Controls[Ord(Button)]).Hint);
end;

При использовании материала - ссылка на сайт обязательна