Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.06;
Скачать: CL | DM;

Вниз

проблема с сохранением базы   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.049 c
8-1101042263
Kostya-xp
2004-11-21 16:04
2005.03.06
Остановить воспроизведение звука...


1-1108304762
Сергей Ю.
2005-02-13 17:26
2005.03.06
Как можно разделить функции одной программы между несколькими?


9-1102275087
Domowoi
2004-12-05 22:31
2005.03.06
Powerdraw


1-1108820295
XfroSt
2005-02-19 16:38
2005.03.06
Передача данных между формами


14-1108449697
Чайнище
2005-02-15 09:41
2005.03.06
Алгоритм генератора?