Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как остановить автодобавление из DBGrid

Delphi , Компоненты и Классы , TDBGrid

Как остановить автодобавление из DBGrid


Программист обиделся, что о нем анекдот про 2 стакана сочинили (ну, вы знаете). Жалуется системному программисту. А тот задумался и говорит:
- Нет, 2-х стаканов недостаточно. Нужно 4.
- ???
- Системное резервирование.

Добавьте в событие "BeforeInsert" Вашего TTables следующие строки:


procedure TForm1.Tbable1BeforeInsert(DataSet: TDataset);
begin 
  Abort;
end;

или


procedure TForm8.DBGrid1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
  if (Key = VK_DOWN) then
  begin
    TTable1.DisableControls;
    TTable1Next;
    if TTable1.EOF then
      Key := 0
    else
      TTable1.Prior;
    TTable1.EnableControls;
  end;
end;

Классическая шутка!

Теперь давайте рассмотрим вопрос о остановке автоматического добавления в DBGrid.

Первый подход, который я упомянул, заключается в использовании события BeforeInsert компонента TTable. Добавив следующий код:

procedure TForm1.Tbable1BeforeInsert(DataSet: TDataset);
begin
  Abort;
end;

Вы эффективно отменяете операцию добавления записи, предотвращая добавление новых записей в таблицу.

Альтернативный подход заключается в использовании события KeyDown компонента DBGrid, как показано в моем втором примере:

procedure TForm8.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Key = VK_DOWN) then
  begin
    TTable1.DisableControls;
    TTable1.Next;
    if TTable1.EOF then
      Key := 0
    else
      TTable1.Prior;
    TTable1.EnableControls;
  end;
end;

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

Оба подхода будут предотвращать добавление новых записей в таблицу. Однако стоит отметить, что использование события BeforeInsert является более надежным способом достижения этого, поскольку позволяет отменить операцию добавления перед изменениями данных. Подход с использованием события KeyDown может иметь некоторые ограничения или побочные эффекты в зависимости от вашего конкретного использования.

Надеюсь это поможет!

Статья описывает способ остановки автодобавления записей из DBGrid в Delphi, осуществляемый через событие 'BeforeInsert' или обработку нажатия клавиши Down на DBGrid.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TDBGrid ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 15:30:18/0.0031659603118896/0