|
|
|
|
Не могли
бы Вы мне подсказать, как заблокировать функцию вставки записи непосредственно
в компоненте 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
|
|