![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Непонятній єффект при вводе в DBGRID [D6, 95/98]
Rubey © (2006-05-23 08:09:00)Уважаемые знатоки. Для ввода и изменения через DBGRID пользуюсь следующим кодом
procedure TForm1.Table1BeforePost(DataSet: TDataSet);
begin
if Form1.DBGrid1.DataSource.DataSet.State in [dsinsert,dsEdit] then
begin
if MessageDlg('Данные изменились,сохранить?',
mtWarning,[mbYes,mbNo],0) = mrNo
then
Abort;
end;
Других событий не обрабатываю.
Все работает нормаьно, но присутствует нежелательный эффект, который не могу убрать. После каждого изменения грида при передвижении по редактируемой таблице мышкой или клавиатурой выскакивает сообщение о сохранении изменений. Вопрос в том, как сделать, чтобы это сообщение появлялось только при выходе из редактирования по нажатию например клавиши Сохранить.
22.05.2006 Рубей.
Desdechado (2006-05-23 12:38:00) [1]возможно, еще надо
datasource.autoedit:=false;
ЮЮ (2006-05-23 10:44:00) [2]TDataSet.CashUpdates := true;
При этом все изменения будут выполняться и храниться в DataSet-е, а в БД изменяться не будут.
Для внесения изменений в БД следует затем применить ApplyUpdates, для отмены - CancelUpdates. Для проверки наличия изменений - UpdatesPending
Sergey13 (2006-05-23 09:40:00) [3]А Form1.DBGrid1.DataSource.DataSet = TForm1.Table1? И почему по разному записано? В этой процедуре вообще достаточно
if DataSet.State in [dsinsert,dsEdit] then
написать.
MsGuns (2006-05-23 09:29:00) [4]Опции грида в студию
Elen (2006-05-23 08:26:00) [5]Мне кажется дело в том, что как только ты переходиш на какую-то ячейку в DBGrid, если установлен Options.dgEditing=true, то компонент автоматически переходит в режим dsEdit вне зависимости ввел ли ты или изменил или оставил как есть
Elen (2006-05-23 08:24:00) [6]Мне кажется дело в том, что как только ты переходиш на какую-то ячейку в DBGrid, если установлен Options.dgEditing=true, то компонент автоматически переходит в режим dsEdit вне зависимости ввел ли ты или изменил или оставил как есть