Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 18.09.2015
Сообщений: 5
1

Как отменить изменение DBEdit?

18.09.2015, 11:49. Показов 1681. Ответов 2
Метки нет (Все метки)

Имеется ADOQuery. Для доступа к полям используются DBEdit-ы. Задача следующая: Если пользователь меняет текст в DBEdit, который связан с ключевым полем, то по событию OnExit выскакивает MessageBox типа "Изменение ключевого поля чревато последствиями. Продолжить?". И если пользователь нажимает "нет", то в поле должно вернуться старое значение, которое было до изменения. И если были какие-то изменения в других полях - они остались. Т.е. абсолютно ничего не должно измениться. Пробовал DBEdit.Undo - возвращает старое значение, но когда снова помещаю курсор в этот DBEdit - возвращается новое значение. (Я так понимаю, что когда редактируешь DBEdit руками, то значение сразу передается в ADOQuery, а метод Undo меняет только DBEdit.Text, и при обращению к этому DBEdit DBEdit.Text обновляется из ADOQuey.) Нужно что-то типа метода Cancel, только не для всей записи, а для конкретного поля.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2015, 11:49
Ответы с готовыми решениями:

Как отменить изменение размера изображения в lightbox'e?
Здравствуйте, На моем тестовом сайте я разместил скан документа в lightbox'e справа. У меня...

Как отменить изменение прав на корневом каталоге?
Добрый день, ввел команду sudo chmod 777 / пропал sudo, что делать, как быть? Спасибо

NumericUpDown - в каком его событии и как отменить изменение текущего его значения
Здравствуйте! Не подскажите каким образом отменить изменение значения у NumericUpDown-а? Т.е. если...

Отменить последнее изменение формы
Подскажите, есть ли какая нибудь команда, которая отменяет последнее изменение формы(точнее ее...

2
4 / 4 / 1
Регистрация: 23.09.2015
Сообщений: 12
24.09.2015, 00:51 2
Лучший ответ Сообщение было отмечено lirikus как решение

Решение

Для ADOQuery обработай событие beforePost, в котором сравни DBEdit и поле в ADOQuery и если они различаются - ставь значение из ADOQuery и выводи ShowMessage. Я бы так сделал. Ну и самый простой вариант - изначально установить
Delphi
1
DBEdit.ReadOnly := true;
Чтоб не повадно было
Цитата Сообщение от lirikus Посмотреть сообщение
Я так понимаю, что когда редактируешь DBEdit руками, то значение сразу передается в ADOQuery, а метод Undo меняет только DBEdit.Text, и при обращению к этому DBEdit DBEdit.Text обновляется из ADOQuey.
Значение в Query должно передаваться с помощью ADOQuery.Post;
0
пофигист широкого профиля
4310 / 2825 / 801
Регистрация: 15.07.2013
Сообщений: 16,387
24.09.2015, 01:27 3
Ну и нафига тебе в программе нужен именно TDBEdit связанный с ключевым полем? ССЗБ?
Простой TEdit чем не устраивает?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.09.2015, 01:27

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Отменить изменение свойства Checked для RadioButton
Здравствуйте! Ситуация следующая: при изменение выбора radioButton пользователю задается вопрос,...

Есть несколько dbedit, нужно их сумму подсчитать в edit или dbedit
Есть несколько таблиц в sql в делфи работаю с dbgrid , и из 2 таблиц вывел значения в dbeditы , я...

DBGrid. DBEdit вывод информации в поле Edit или DBEdit
Доброго времени суток уважаемые знатоки! Обращаюсь к вам за помощью так как сил и идей моих больше...

Автоматическое копирование текста из DBEdit в DBEdit
Привет народ! Вот такая ситуация, например на форме есть два DBEdit'а (DBEdit1 и DBEdit2) как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.