boka Posted February 1, 2023 Share Posted February 1, 2023 Вопрос практический такой же, как в последних постах тут Поясню свой: Есть DBLookupCombo c заполненными только ListSource, KeyField и ListName. DataSet под ListSource является master в Master-Detail relation, cоответственно, при выборе нового значения в DBLookupComboBox перезапрашивается detail dataset. Всё бы хорошо, но если в detail dataset накопились изменения при CachedUpdates, то их желательно записать в БД, выполнив ApplyUpdates и предварительно спросив, а стоит ли их сохранять. EnableSynchronousOperations = true и запрос MessageDlg обязательно должен быть блокирующим, иначе [ListSource.DataSet.]KeyField успевает поменяться на новый и закэшированные в detail dataset изменения сбрасываются. Пытался поднимать MessageDlg и в TUniDBLookupCombo.OnChange, и в ~.OnChangeValue (само собой в OnSelect, OnExit и OnCloseUp уже поздно), и в [ListSource.DataSet.]KeyField.OnChange, но получаю "Dataset Blocking method MessageDlg() can not be called here". Где-то в ClientEvents я успею перехватить контроль в самом начале, когда ещё можно? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.