![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
проблема с сохранением базы [D6, Win2k]
dreamse © (2005-02-08 13:18:00)В общем имеем Table ( любой , хоть adotable хоть другой ) и при работе с DbGrid мы должны отследить что пользователь изменил запись.
Я решил эту проблему установиd обработчики на exit
Код :
if ADOTable1.State = dsEdit then begin
if MessageDlg('Сохранить изменённые данные ? ',
mtConfirmation, [mbyes,mbno], 0) <> mryes then begin
ADOTable1.Cancel;
exit;
end;
end;
if (ADOTable1.State = dsedit) or (ADOTable1.State = dsinsert) then ADOTable1.Post;
То есть если мы находимся в режиме редактирования ( изменпили данные то спрашиваем пользователя и в случае соглашения сохраняем данные.
Тот же код поставил и на OnKeyPress только учтитывая нажатие Enter
Всё отлично работает , но сталкнулся с такой проблемой : Если после редактирования данных в какой либо ячейки пользователь не нажмёт Enter и не переключиться на другой контрол , а например просто нажмёт стрелку вниз то данные не будут обработаны , не возникнет события обработки. Как можно решить этот вопрос ?
Я поставил обработчик на ADOTable1AfterPost чтобы при любой записи спрашивать пользователя но на ADOTable1AfterPost программа виснет намертво :(
Как определить переход к другой ячейки таблици DbGrid ? или возможно есть другое решение ?
dreamse (2005-02-08 14:54:00) [1]Удалено модератором
Примечание: дубль
dreamse (2005-02-08 14:47:00) [2]Удалено модератором
Примечание: дубль
dreamse (2005-02-08 14:46:00) [3]Всё всем спасибо ... оказываеться ошибка в коде ... в конце я вызывал опять Post
if (ADOTable1.State = dsedit) or (ADOTable1.State = dsinsert) then ADOTable1.Post;
Что приводило к ещё одной обработке :)
Mamed (2005-02-08 14:44:00) [4]On Column Exit v Gride i DataChange v Datasource
dreamse (2005-02-08 14:34:00) [5]> при работе с DbGrid мы должны отследить что пользователь > изменил запись.
И не просто изменил а перешёл на другую ячейку при этом изменив данные в той с которой переходил
Соловьев (2005-02-08 14:22:00) [6]
> На OnBeforePost это событие возникает очень часто , почти
> каждое мгновение.
> при работе с DbGrid мы должны отследить что пользователь
> изменил запись.
Зайчики с дюрасель? 8)
Johnmen (2005-02-08 14:10:00) [7]OnBeforePost
Возникает один раз перед постом, явным или нет.
Если много - значит много постов, что неверно. Неверная логика...
dreamse (2005-02-08 13:55:00) [8]> Johnmen © (08.02.05 13:34) [1]
На OnBeforePost это событие возникает очень часто , почти каждое мгновение. А мне нужно только тогда когда ушли с ячейки в которой изменили данные
Johnmen (2005-02-08 13:34:00) [9]OnBeforePost