Форум: "Базы";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
Внизпроблема с сохранением базы Найти похожие ветки
← →
dreamse (2005-02-08 13:18) [0]В общем имеем 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 ? или возможно есть другое решение ?
← →
Johnmen © (2005-02-08 13:34) [1]OnBeforePost
← →
dreamse (2005-02-08 13:55) [2]> Johnmen © (08.02.05 13:34) [1]
На OnBeforePost это событие возникает очень часто , почти каждое мгновение. А мне нужно только тогда когда ушли с ячейки в которой изменили данные
← →
Johnmen © (2005-02-08 14:10) [3]OnBeforePost
Возникает один раз перед постом, явным или нет.
Если много - значит много постов, что неверно. Неверная логика...
← →
Соловьев © (2005-02-08 14:22) [4]
> На OnBeforePost это событие возникает очень часто , почти
> каждое мгновение.
> при работе с DbGrid мы должны отследить что пользователь
> изменил запись.
Зайчики с дюрасель? 8)
← →
dreamse (2005-02-08 14:34) [5]> при работе с DbGrid мы должны отследить что пользователь > изменил запись.
И не просто изменил а перешёл на другую ячейку при этом изменив данные в той с которой переходил
← →
Mamed (2005-02-08 14:44) [6]On Column Exit v Gride i DataChange v Datasource
← →
dreamse (2005-02-08 14:46) [7]Всё всем спасибо ... оказываеться ошибка в коде ... в конце я вызывал опять Post
if (ADOTable1.State = dsedit) or (ADOTable1.State = dsinsert) then ADOTable1.Post;
Что приводило к ещё одной обработке :)
← →
dreamse (2005-02-08 14:47) [8]Удалено модератором
Примечание: дубль
← →
dreamse (2005-02-08 14:54) [9]Удалено модератором
Примечание: дубль
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c