На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Разработка баз данных / Не могли бы Вы мне подсказать, как заблокировать функцию вставки записи непосредственно в компоненте TDBGrid с сохранением всех остальных возможностей редактирования таблицы. Сделать домашней страницей Добавить в избранное Написать писмо

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


Наиболее разумным представляется создать обработчик события BeforeInsert компонента TTable, TQuery или TClientDataSet, данные из которых отображаются в TDBGrid.
 Сам компонент TDBGrid не имеет подходящего события для обработки, так как это компонент, предназначенный только для создания пользовательского интерфейса, а в данном случае следует, по существу, запретить добавление записей в таблицу.
--
А я сделала так(вроде пока работает DS-DataSource):

procedure TDM.DS_OcenkiGruppyStateChange(Sender: TObject);
begin
if OcenkiGruppy.state=dsInsert then OcenkiGruppy.cancel;
end;

--
Комментарий от Глухова Дмитрия
Можно гораздо проще - в событии OnBeforeInsert написать команду Abort;
Это запрет на ЛЮБОЕ добавление записи
Если в определенные моменты времени нужно добавлять запись тогда тело
события выглядит так:

If not <ФлагМожноДобавлять> then
 Abort;

А блок добавления записи, например по кнопке, выглядит так

 Try
   <ФлагМожноДобавлять> := True;
   {Блок добавления записи}
 Finally
   <ФлагМожноДобавлять> := False;
 End;

То же самое применимо и к изменению записи и к удалению (только писать в соответствующих событиях OnBeforeEdit & OnBeforeDelete)

Copyright ©   "Мастера DELPHI"   E-mail:   delphi@mastak.com  http://www.delphimaster.ru
Источник получения информации: http://www.delphimaster.ru
Hosted by uCoz