![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подтверждение удаления [D7, XP]
Sw © (2006-04-13 10:57:00)Помогите, пожалуйста, разобраться. В DBNavigator ConfirmDelete:=False; (отключаю т.к. нужно вывести подтверждение по-русски).
Перед удалением (IBDataSetBeforeDelete) делаю проверку типа:
if id=sId then Application.MessageBox('Нельзя удалить, т.к..')
Но, перед этим необходимо подтверждение, т.е. "Вы действительно желаете удалить.."
Если использовать case Application.MessageBox('Удалить?'), 'Подтверждение', MB_OKCANCEL) of
mrOk: if id=sId then ...
mrCancel: IBDataSet.Cancel
это не работает, т.к. здесь BeforeDelete
Подскажите, как вывести данное сообщение, если по отдельной кнопочке выполняютя данные действия - все проходит, а мне нужно удалять через DBNavigator.
ЮЮ (2006-04-17 04:12:00) [1]Потому что IBDataSet1.Delete выполнит сам навигатор, а ваш IBDataSet1.Delete - это уже удаление двух записей. IBDataSet1.Cancel здесь тоже бесполезен - он отменяет Insert и Edit, но не отменяет Delete. Abort в первом случае "убивает" весь код, исполняемый после нажатия кнопки, не только ваш обработчик прерывания, а и выполнение метода, вызвавшего этот обработчик.
Sw (2006-04-14 11:32:00) [2]Набрала Button =по Ctrl+пробел подсказочки нет, ну и все..паника
Будьте добры, объясните "особо одаренным" почему так работает:
if Button=nbDelete then
if Application.MessageBox('Удалить клиента?',
'Подтверждение', MB_OKCANCEL)=mrCancel then
Abort;
а так Cancel не работает, Delete удаляет по две строки:
case Application.MessageBox('Удалить клиента?',
'Подтверждение', MB_OKCANCEL)of
mrOK: IBDataSet1.Delete;
mrCancel: IBDataSet1.Cancel;
end;
Подозреваю, что это так, потому что код в обработчике события, но как бы последовательно для себя объяснить не могу
ЮЮ (2006-04-14 08:06:00) [3]if Button= nbDelete
Для чего, полагаешь, этот парамент в обработчике передается?
Sw (2006-04-14 07:46:00) [4]Подскажите, пожалуйста, код в этом обработчике, if нажата nbDelete.
Извините, конечно, может глупо, но вот пишуif DBNavigator1.BtnClick(nbDelete) then..- это не правильно, выдает ошибку
Anatoly Podgoretsky (2006-04-13 12:02:00) [5]Да и DBNavigator имеет обработчик события BeforeAction
Старик (2006-04-13 11:13:00) [6]а вместо дбнавигатора свои десять кнопок положить трудно?
elfebet (2006-04-13 11:06:00) [7]из DBNavigator сделать сообщение на русском языке - вряд ли получится