В моем приложении есть эти компоненты данных связана следующим образом:Какое событие увольняется до изменения текущей записи в ADOQuery и как НЕ менять текущую запись?
DBGrid > (DataSource > ADOQuery > ADOConnection)
DBNavigator > (DataSource > ADOQuery > ADOConnection)
Всякий раз, когда пользователь выберет другую строку из DBGrid или использует DBNavigator, текущие изменения записи в ADOQuery в. Хорошо, но когда пользователь вносит некоторые изменения в текущую запись, а затем переходя от нее, сделанные изменения теряются.
Я хотел бы отобразить диалоговое окно подтверждения, в котором пользователю необходимо будет подтвердить переход от текущей записи в случае внесения каких-либо изменений. И, когда пользователь нажимает «Нет», я хотел бы, чтобы приложение НЕ меняло текущую запись.
Где я должен вставлять код? Какое событие оно увольняется, прежде чем пользователь перейдет от текущей записи и как остановить действие?
if anythingChanged then
if messageDlg(...)=mrNo then
ADOQuery.dontChangeCurrentRecord;
WOO-HOO! В течение 33 минут я ждал этого ответа, мне удалось выяснить, что это событие BeforeScroll, с которым мне нужно возиться, но я не знал об тёмном молчании: - $ THANKS A LOT! –
Обратите внимание, что BeforeScroll не охватывает все ситуации (например, кто-то закрывает набор данных или просто обновляет набор данных). Однажды я написал TRecordArrivedNotifier (на основе TDataLinkReflector), который запускает событие, когда вы приходите на новую запись. Вы можете использовать это как базу для запуска «Прервать». См. Мой разговор «Умный код с базами данных и контрольными данными» здесь: http://wiert.wordpress.com/conferences-seminars-and-other-public-appearances/ –