С delphi у меня есть dbgrid. Я хочу, чтобы, когда пользователь заполнил строку и опубликовал ее, строка сетки была доступна только для чтения

#delphi #row #line #readonly #dbgrid

#delphi #строка #строка #только для чтения #dbgrid

Вопрос:

С delphi у меня есть dbgrid. Я хочу, чтобы, когда пользователь заполнил строку и опубликовал ее, строка сетки была доступна только для чтения

У вас есть какие-либо предложения?

Спасибо

Ответ №1:

Прошло много времени с момента последней разработки Delphi, но я бы прервал событие OnBeforeEdit, если в буфере есть данные. Мои два цента

Ответ №2:

Я предлагаю сохранить список со всеми строками (все данные или только первичный ключ или идентификатор строки), уже обновленными пользователем. Прежде чем разрешить обновление, вы проверяете список.

Ответ №3:

Чтобы предотвратить случайные / нежелательные изменения, вы можете отключить AutoEdit свойство TDataSource, предоставляющее данные в DBGrid. Затем убедитесь, что у любых элементов управления, таких как DBNavigator, не включено редактирование.

Из справки Delphi:

Описание

Указывает, должен ли источник данных автоматически вызывать метод редактирования.

Авторедактирование по умолчанию имеет значение true. Если значение AutoEdit равно true, то, когда пользователь пытается изменить данные, отображаемые элементом управления, источник данных вызывает метод редактирования базового набора данных.

Установите для AutoEdit значение false, чтобы защитить данные от непреднамеренного изменения. Даже если значение AutoEdit равно false, приложение может явно вызвать метод редактирования набора данных, чтобы разрешить изменение данных.